Rumah >Java >javaTutorial >Mengapa Bait DinyahSulit Awal Saya Tidak Betul Selepas Penyahsulitan Java AES/CBC?

Mengapa Bait DinyahSulit Awal Saya Tidak Betul Selepas Penyahsulitan Java AES/CBC?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 03:56:09383semak imbas

Why Are My Initial Decrypted Bytes Incorrect After Java AES/CBC Decryption?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn