Alat Enkripsi AES (AES-128/192/256)

Enkripsi teks dengan AES-128/192/256 dalam mode CBC, GCM, CTR, CFB, OFB, atau ECB. Mode frasa sandi kompatibel OpenSSL atau kunci + IV hex mentah. Berjalan di browser.

Output memakai format OpenSSL "Salted__" dalam Base64: salt acak 8 byte diikuti ciphertext. Kunci dan IV diturunkan dari frasa sandi dan salt, jadi teks yang sama menghasilkan output berbeda setiap kali. Perintah setara:

openssl enc -aes-256-cbc -md md5 -a -A -k '…'

Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.

Apa itu Enkripsi AES?

Mengenkripsi teks atau data hex dengan AES, block cipher standar (FIPS 197). Anda bisa menurunkan kunci dari frasa sandi dalam format OpenSSL "Salted__", sehingga openssl enc dan CryptoJS dapat mendekripsi hasilnya, atau memberikan kunci dan IV mentah dalam hex agar kompatibel dengan kode. Mode CBC, CFB, CTR, OFB, ECB, dan GCM yang terautentikasi didukung.

Cara menggunakan Enkripsi AES

  1. Biarkan Sumber kunci pada Frasa sandi (kompatibel OpenSSL) lalu ketik Frasa sandi, atau beralih ke Kunci mentah + IV (hex) dan masukkan kunci serta IV yang persis dalam hex.
  2. Pilih Mode dan Padding (CBC dengan PKCS#7 adalah default OpenSSL); untuk kunci mentah Anda juga bisa memilih GCM dan data autentikasi tambahan (AAD) opsional.
  3. Ketik atau tempel Plaintext (atau ubah encoding input ke Hex untuk data biner).
  4. Klik Enkripsi, pilih Base64 atau Hex sebagai Encoding output, lalu salin ciphertext-nya.

Contoh

Masukan
Key 2b7e151628aed2a6abf7158809cf4f3c, IV 000102030405060708090a0b0c0d0e0f, mode CBC, padding None, hex plaintext 6bc1bee22e409f96e93d7e117393172a
Keluaran
7649abac8119b246cee98e9b12e9197d

Test vector NIST SP 800-38A F.2.1, encoding output Hex.

Kapan menggunakan Enkripsi AES

Gunakan untuk membuat data uji bagi aplikasi yang memakai AES, mengenkripsi potongan data yang akan Anda dekripsi dengan OpenSSL atau CryptoJS, atau mempelajari bagaimana mode dan padding mengubah output. Utamakan GCM (atau CBC ditambah MAC terpisah) untuk data sungguhan, karena CBC/CTR/CFB/OFB saja tidak mendeteksi perubahan data. Hindari ECB: blok yang identik menghasilkan ciphertext yang identik. Untuk file atau rahasia jangka panjang, gunakan alat khusus seperti age, GnuPG, atau API enkripsi platform Anda.

Cara kerja Enkripsi AES

AES mengenkripsi blok 16 byte dengan kunci 128, 192, atau 256 bit (10, 12, atau 14 putaran). Dalam mode frasa sandi, salt acak 8 byte dibuat lalu kunci dan IV diturunkan dengan EVP_BytesToKey milik OpenSSL (MD5, satu iterasi – default openssl enc -md md5 dan CryptoJS) atau dengan PBKDF2-HMAC-SHA256 (openssl enc -pbkdf2); outputnya adalah Base64 dari Salted__ + salt + ciphertext. Dalam mode mentah, kunci dan IV hex Anda dipakai langsung dan hanya ciphertext yang dikembalikan. CBC dan ECB memakai padding PKCS#7 (atau nol/tanpa padding); CFB, OFB, dan CTR adalah mode stream tanpa padding. GCM memakai Web Crypto API browser dengan nonce 12 byte dan menambahkan tag autentikasi 16 byte di akhir. Implementasinya lolos test vector NIST SP 800-38A dan GCM.

Kasus Penggunaan Umum

  • Membuat ciphertext yang kompatibel dengan openssl enc -aes-256-cbc tanpa terminal
  • Mereproduksi output CryptoJS.AES.encrypt(text, passphrase) untuk debugging
  • Membuat test vector AES-GCM (ciphertext + tag) untuk implementasi backend
  • Mengenkripsi rahasia pendek dengan kunci mentah 256 bit dan IV untuk ditempel ke file konfigurasi
  • Menunjukkan mengapa mode ECB membocorkan pola dibandingkan CBC atau CTR

Catatan Keamanan

Semuanya berjalan secara lokal di browser Anda; tidak ada yang diunggah. EVP_BytesToKey dengan MD5 adalah derivasi kunci yang lemah dan cepat, dipertahankan demi kompatibilitas – pilih PBKDF2 dengan banyak iterasi, atau kunci mentah acak, untuk data penting. Enkripsi tanpa autentikasi (CBC, CTR, CFB, OFB) tidak mendeteksi modifikasi.

Pertanyaan Umum

Apakah outputnya kompatibel dengan OpenSSL?

Ya. Dalam mode frasa sandi, hasilnya persis sama dengan yang dihasilkan openssl enc -aes-256-cbc -md md5 -a -A -k <passphrase> (EVP_BytesToKey dengan MD5), atau -pbkdf2 -iter N jika Anda memilih PBKDF2-HMAC-SHA256. Tambahkan -d untuk mendekripsi. Halaman menampilkan perintah yang sesuai di bawah kolom frasa sandi.

Mengapa ciphertext saya selalu berbeda setiap kali?

Mode frasa sandi memakai salt acak baru untuk setiap enkripsi, sehingga kunci, IV, dan ciphertext berubah. Itu memang disengaja; output mana pun dapat didekripsi dengan frasa sandi yang sama. Mode kunci mentah bersifat deterministik untuk kunci, IV, dan input yang sama.

Mode mana yang sebaiknya saya pilih?

GCM, karena juga mengautentikasi data (dekripsi gagal jika ada yang diubah). Jika pihak penerima hanya mendukung openssl enc, gunakan CBC – enc OpenSSL tidak mendukung GCM. Jangan pernah memakai ulang nonce GCM atau counter CTR dengan kunci yang sama.

Apa bedanya frasa sandi dan kunci mentah?

Frasa sandi diubah menjadi kunci dengan fungsi derivasi kunci dan salt yang disimpan di output. Kunci mentah dipakai persis seperti yang diketik (16, 24, atau 32 byte untuk AES-128/192/256) bersama IV yang harus Anda bagikan secara terpisah.

Jelajahi kategori lainnya