Ralat Penyahsulitan Rijndael: Padding Tidak Sah
Menyahsulit data yang disulitkan dengan algoritma Rijndael kadangkala boleh mengakibatkan ralat "Padding tidak sah dan tidak boleh dialih keluar". Ralat ini timbul daripada ketidakkonsistenan antara padding yang digunakan semasa penyulitan dan padding yang dijangkakan semasa penyahsulitan.
Rijndael beroperasi pada blok 128-bit. Padding memastikan bahawa blok terakhir sentiasa 128 bit penuh. Jika padding ini tidak betul semasa penyahsulitan, prosesnya gagal.
Memahami Peranan Padding
Padding adalah penting untuk penjajaran dan keselamatan blok data. Ia menghalang serangan kriptografi tertentu. Pelapik PKCS#7 biasanya digunakan dengan Rijndael, menambahkan bait tambahan pada penghujung data untuk mengisi blok terakhir.
Penyelesaian: Padding Konsisten
Kunci untuk menyelesaikan ralat ini adalah dengan mentakrifkan mod pelapik secara eksplisit dalam kedua-dua proses penyulitan dan penyahsulitan. Ini memastikan konsistensi.
Untuk penyulitan, tetapkan pelapik PKCS#7 secara eksplisit:
<code class="language-csharp">key.Padding = PaddingMode.PKCS7;</code>
Begitu juga, untuk penyahsulitan, nyatakan padding PKCS#7:
<code class="language-csharp">exml.Padding = PaddingMode.PKCS7;</code>
Dengan mentakrifkan mod padding secara eksplisit, anda menghapuskan ketidakpadanan padding dan mendayakan penyahsulitan yang berjaya.
Atas ialah kandungan terperinci Mengapa Penyahsulitan Rijndael Gagal dengan 'Padding Tidak Sah dan Tidak Boleh Dialih Keluar'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!