Bait Awal Tidak Betul Selepas Penyahsulitan Java AES/CBC
Kod Java yang disediakan cuba melakukan penyulitan dan penyahsulitan AES/CBC. Walau bagaimanapun, bait awal rentetan yang dinyahsulit rosak. Untuk menyelesaikan isu ini, adalah penting untuk mempertimbangkan potensi sumber masalah.
Inti isu timbul daripada pemulaan sifir penyahsulitan yang salah. Khususnya, kod gagal untuk menetapkan vektor permulaan (IV) untuk sifir penyahsulitan. IV ialah parameter kritikal yang digunakan untuk memulakan sifir blok, dan ketiadaannya boleh menyebabkan penyahsulitan yang salah.
Untuk membetulkan ini, kod harus menetapkan IV secara eksplisit sebelum memulakan sifir penyahsulitan:
IvParameterSpec ivParameterSpec = new IvParameterSpec(aesKey.getEncoded()); decryptCipher.init(Cipher.DECRYPT_MODE, aesKey, ivParameterSpec);
Dengan menetapkan parameter IV, kod memastikan proses penyahsulitan dilakukan dengan betul, menghasilkan pemulihan tepat plaintext asal tanpa sebarang rasuah bait awal.
Atas ialah kandungan terperinci Mengapa Bait DinyahSulit Awal Saya Tidak Betul Selepas Penyahsulitan Java AES/CBC?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!