Enkripsi & Dekripsi AES
Enkripsi dan dekripsi teks dengan AES-128, 192, atau 256 — mode GCM, CBC, CTR, dan lainnya.
Anda akan membutuhkannya lagi untuk mendekripsi. Apa pun yang Anda ketik tidak keluar dari halaman ini.
Bawaan OpenSSL adalah 10.000. Angka berapa pun bisa dipakai: makin banyak, makin lambat kata sandi ditebak; dekripsi membutuhkan angka yang sama.
Pilihan umum dengan OpenSSL. Butuh IV; diberi padding hingga blok penuh.
openssl enc -aes-256-cbc -pbkdf2 -iter 10000 -a -AOpenSSL akan meminta kata sandi; tempel teksnya ke sana, atau tambahkan file -in dan -out.
Enkripsi teks dengan AES-256 — atau AES-128 dan AES-192 — memakai kata sandi atau kunci dan IV Anda sendiri, atau tempel ciphertext AES dalam Base64 atau hex untuk mendekripsinya. Dengan kata sandi, hasilnya memakai format yang sama dengan openssl enc -pbkdf2: header Salted__, salt acak 8 byte, lalu ciphertext, dengan kunci dan IV yang diturunkan lewat PBKDF2-HMAC-SHA256. Pengaturan bawaannya, AES-256 mode CBC dengan padding PKCS#7 dan output Base64, sama dengan openssl enc -aes-256-cbc -pbkdf2 -a, sementara GCM, CTR, CFB, OFB, dan ECB tinggal satu klik. Hasilnya diperbarui saat Anda mengetik. Semuanya terjadi di browser Anda, jadi teks, kata sandi, dan kunci tidak pernah keluar dari perangkat; gratis dan tanpa perlu mendaftar.
Cara mengenkripsi dan mendekripsi teks dengan AES
- Pilih Enkripsi atau Dekripsi. Ketik teks yang ingin dienkripsi, atau tempel teks Base64 atau hex yang ingin didekripsi — formatnya dikenali otomatis.
- Masukkan kata sandi (tombol Buat menghasilkan kata sandi yang kuat), atau beralih ke Kunci & IV (hex) lalu masukkan atau buat kunci dan IV sepanjang yang ditunjukkan.
- Pilih ukuran kunci (128, 192, atau 256 bit) dan mode. Untuk mendekripsi, pakai kata sandi, jumlah iterasi, ukuran kunci, dan mode yang sama seperti saat teks dienkripsi.
- Salin atau unduh hasilnya, atau tekan Tukar untuk memindahkannya ke kolom input dan membalik arah. Di bagian Sama dengan OpenSSL, halaman menampilkan perintah openssl yang setara, tanpa kata sandi Anda.
Fitur
- AES-128, AES-192, dan AES-256 dalam mode CBC, GCM, CTR, CFB, OFB, atau ECB
- Mode kata sandi dalam format openssl enc -pbkdf2: header Salted__, salt acak 8 byte, kunci dan IV dari PBKDF2-HMAC-SHA256
- 10.000 (bawaan OpenSSL), 100.000, atau 600.000 iterasi PBKDF2, atau angka berapa pun hingga 10 juta
- Mode Kunci & IV dengan kunci dan IV hex milik Anda, atau nilai acak dari tombol Buat
- AES-GCM mendeteksi kata sandi atau kunci yang salah dan setiap perubahan pada ciphertext
- Padding PKCS#7, atau tanpa padding di CBC dan ECB
- Output Base64 atau hex; input Base64 atau hex dikenali otomatis
- Perintah openssl enc yang setara untuk semua mode kecuali GCM
Apakah privasi terjaga?
Ya. AES berjalan dengan WebAssembly di dalam browser Anda, dan kata sandi diubah menjadi kunci oleh Web Crypto bawaan browser. Teks, kata sandi, dan kunci Anda tidak pernah diunggah atau disimpan, dan perintah openssl yang ditampilkan halaman ini tidak pernah memuatnya.
Pertanyaan umum
Mode AES mana yang sebaiknya saya pakai?
Untuk data baru, GCM: selain mengenkripsi, mode ini mendeteksi setiap perubahan pada teks dan kata sandi yang salah. Pilih CBC, mode bawaan, jika pihak lain memakai openssl enc, yang tidak bisa membaca GCM; pilih CTR, CFB, atau OFB hanya untuk menyamakan dengan sistem yang sudah ada. Hindari ECB: blok 16 byte yang identik menghasilkan output yang identik, sehingga pola dalam teks tetap terlihat.
Bisakah hasilnya didekripsi dengan OpenSSL?
Bisa, kecuali GCM. Dengan pengaturan bawaan: echo 'U2FsdGVkX1…' | openssl enc -d -aes-256-cbc -pbkdf2 -iter 10000 -a -A — OpenSSL lalu meminta kata sandi. Ganti 256 dan cbc sesuai ukuran kunci dan mode Anda (ecb, ctr, cfb, ofb), -iter sesuai jumlah iterasi, dan tambahkan -nopad jika padding dimatikan; untuk output hex, hapus -a -A dan alirkan teksnya lebih dulu lewat xxd -r -p. Untuk mode Kunci & IV, pakai -K <kunci hex> -iv <IV hex> sebagai ganti -pbkdf2 -iter. openssl enc menolak GCM (cipher AEAD tidak didukung), jadi teks GCM hanya bisa dibaca di sini atau lewat kode.
Mengapa hasilnya selalu berbeda?
Karena setiap enkripsi dengan kata sandi memilih salt acak baru, sehingga kunci, IV, dan seluruh output berubah setiap kali — dan semua versi itu terdekripsi menjadi teks yang sama. Ini disengaja: tidak ada yang bisa tahu bahwa dua pesan isinya sama. Di mode Kunci & IV, output berulang jika kunci dan IV-nya sama, jadi buat IV baru untuk setiap pesan: memakai ulang IV dengan kunci yang sama melemahkan CBC dan merusak keamanan CTR serta GCM.
Mengapa muncul pesan kata sandi salah?
Karena ada yang tidak cocok: kata sandi, jumlah iterasi, ukuran kunci, mode, dan padding harus sama dengan saat enkripsi, sedangkan teksnya hanya menyimpan salt. Teks yang diawali U2FsdGVkX1 tetapi dibuat oleh openssl enc tanpa -pbkdf2, atau oleh CryptoJS dengan passphrase, memakai penurunan kunci lama (EVP_BytesToKey) yang tidak dibaca halaman ini — enkripsi ulang dengan -pbkdf2, atau pakai mode Kunci & IV jika Anda punya kunci dan IV mentahnya.
Apakah enkripsi AES-256 aman?
Ya. Tidak ada serangan praktis terhadap AES, pada ukuran kunci mana pun; titik lemahnya adalah kata sandi. Gunakan kata sandi acak yang panjang (tombol Buat menghasilkannya) dan, jika Anda mengendalikan kedua sisi, naikkan iterasi ke 600.000, angka OWASP saat ini untuk PBKDF2-HMAC-SHA256. Pilih GCM jika Anda juga perlu memastikan teksnya tidak diubah.