Padding PKCS7 untuk Penyulitan AES
Apabila menyulitkan data menggunakan penyulitan AES 128-bit dalam mod ECB, padding PKCS7 mungkin diperlukan untuk memastikan data ialah gandaan saiz blok. Pelapik ini menambahkan bilangan bait yang berubah-ubah pada penghujung data, di mana nilai setiap bait mewakili bilangan bait padding yang ditambahkan.
Menambahkan Padding PKCS7
Untuk menambah padding PKCS7 pada rentetan teks biasa:
Contoh dalam PHP (Mcrypt)
<?php $block_size = mcrypt_get_block_size('rijndael_128', 'ecb'); // Block size for AES $padding_size = $block_size - (strlen($plaintext) % $block_size); $plaintext .= str_repeat(chr($padding_size), $padding_size); ?>
Mengalih keluar Padding PKCS7
Untuk mengalih keluar padding PKCS7 daripada rentetan teks sifir:
Contoh dalam PHP (Mcrypt)
<?php $ciphertext = ...; // Encrypted ciphertext with PKCS7 padding $key = ...; // Encryption key $decrypted_plaintext = mcrypt_decrypt('rijndael_128', $key, $ciphertext, 'ecb'); $padding_length = ord($decrypted_plaintext[strlen($decrypted_plaintext) - 1]); if (str_repeat(chr($padding_length), $padding_length) === substr($decrypted_plaintext, -1 * $padding_length)) { $plaintext = substr($decrypted_plaintext, 0, -1 * $padding_length); // Remove padding } else { // Invalid padding } ?>
Atas ialah kandungan terperinci Bagaimanakah Padding PKCS7 Berfungsi dengan Penyulitan AES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!