Alat Dekripsi AES
Dekripsi ciphertext AES-128/192/256: data OpenSSL "Salted__" (U2FsdGVkX1…), output CryptoJS, atau kunci + IV hex mentah dalam CBC, GCM, CTR, CFB, OFB, ECB.
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 -d -md md5 -a -A -k '…'Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.
Apa itu Dekripsi AES?
Mendekripsi ciphertext AES di browser. Alat ini membaca format OpenSSL "Salted__" (string Base64 yang diawali U2FsdGVkX1) yang dihasilkan openssl enc dan CryptoJS.AES.encrypt(text, passphrase), atau ciphertext mentah dengan kunci dan IV hex dalam mode CBC, CFB, CTR, OFB, ECB, atau GCM terautentikasi. Padding diverifikasi, sehingga kunci yang salah dilaporkan alih-alih menghasilkan data acak.
Cara menggunakan Dekripsi AES
- Pilih Sumber kunci yang sama dengan saat enkripsi: Frasa sandi (kompatibel OpenSSL) untuk data
U2FsdGVkX1…("Salted__"), atau Kunci mentah + IV (hex) untuk ciphertext mentah. - Masukkan frasa sandi (dan Derivasi kunci yang sama), atau kunci dan IV hex.
- Atur Mode dan Padding yang sama dengan pengirim lalu tempel Ciphertext (Base64 atau Hex).
- Klik Dekripsi. Biarkan output sebagai Teks (UTF-8), atau beralih ke Hex jika plaintext-nya biner.
Contoh
U2FsdGVkX19HHh9Vv809WnL0M8IWPgnpihePLw8JpDQ= (passphrase "secret", AES-256, CBC, EVP_BytesToKey MD5)
Hello, World!
Ciphertext dihasilkan oleh openssl enc -aes-256-cbc -md md5 -a -k secret.
Kapan menggunakan Dekripsi AES
Gunakan untuk membaca data yang dienkripsi dengan OpenSSL atau CryptoJS, mencari tahu mengapa aplikasi Anda tidak bisa mendekripsi sesuatu, atau memeriksa test vector. Anda membutuhkan frasa sandi atau kunci yang benar – alat ini tidak bisa memulihkan kunci yang hilang atau membobol AES. Jika ciphertext berasal dari produk lain (ZIP, database, pengelola kata sandi), biasanya ia memiliki format kontainer sendiri dan tidak akan terdekripsi di sini.
Cara kerja Dekripsi AES
Untuk data frasa sandi, 16 byte pertama harus berupa Salted__ ditambah salt 8 byte. Kunci dan IV diturunkan ulang dari frasa sandi dan salt dengan EVP_BytesToKey (MD5) atau PBKDF2-HMAC-SHA256 dengan jumlah iterasi Anda, persis seperti openssl enc -d, lalu sisanya didekripsi. Dengan kunci mentah, kunci dan IV hex dipakai langsung. Setelah dekripsi CBC/ECB, padding PKCS#7 diperiksa byte demi byte – ketidakcocokan hampir selalu berarti kunci, IV, mode, atau ukuran kunci salah. Dalam GCM, tag 16 byte di akhir diverifikasi oleh Web Crypto sebelum plaintext apa pun ditampilkan.
Kasus Penggunaan Umum
- Mendekripsi string
U2FsdGVkX1…dariopenssl enc -aes-256-cbc -a - Memeriksa nilai yang dienkripsi
CryptoJS.AES.encryptdi aplikasi web - Memverifikasi ciphertext + tag AES-GCM yang dihasilkan backend Anda
- Mencari tahu ukuran kunci atau mode yang dipakai dengan mencoba pengaturan yang mungkin
- Mendekripsi data uji saat debugging API atau integrasi
Catatan Keamanan
Dekripsi berlangsung secara lokal; frasa sandi dan plaintext tidak pernah meninggalkan perangkat Anda. Hanya GCM yang membuktikan bahwa data tidak dimodifikasi.
Pertanyaan Umum
Apa arti "Invalid padding" atau "frasa sandi salah"?
Blok terakhir hasil dekripsi tidak diakhiri padding PKCS#7 yang valid. Periksa frasa sandi, ukuran kunci (128/192/256), mode, dan derivasi kunci (MD5 vs PBKDF2 beserta iterasinya). OpenSSL 1.1+ secara default memakai -md sha256 tanpa -pbkdf2, yang tidak didukung di sini – enkripsi ulang dengan -md md5 atau -pbkdf2.
Bisakah alat ini mendekripsi output CryptoJS?
Bisa. CryptoJS.AES.encrypt(text, "passphrase").toString() memakai format Salted__ yang sama dengan AES-256-CBC dan EVP_BytesToKey/MD5, yang merupakan pengaturan default di sini.
Ciphertext saya tidak diawali U2FsdGVkX1. Lalu bagaimana?
Berarti data itu dienkripsi dengan kunci mentah. Ubah Sumber kunci ke Kunci mentah + IV (hex) dan masukkan kunci serta IV yang dipakai program. Beberapa program menaruh IV di depan ciphertext; pisahkan bagian itu dan masukkan ke kolom IV.
Mengapa hasil dekripsi terlihat seperti karakter acak?
Dalam mode stream (CTR, CFB, OFB) tidak ada padding yang bisa diverifikasi, sehingga kunci yang salah menghasilkan byte acak. Alat ini melaporkannya sebagai UTF-8 tidak valid; ubah output ke Hex jika Anda memang mengharapkan data biner.