Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menambah dan Mengalih Keluar Padding PKCS7 untuk Penyulitan AES dalam Mod ECB?
Menambah dan Mengalih Keluar Padding PKCS7 untuk Penyulitan AES
Apabila menyulitkan data menggunakan penyulitan AES 128-bit dalam mod Buku Kod Elektronik (ECB), ia adalah diperlukan untuk menambah dan mengalih keluar padding PKCS7 pada plaintext dan ciphertext, masing-masing.
Pelapik PKCS7 ialah kaedah yang ditakrifkan dalam RFC 5652 yang memastikan panjang data ialah gandaan saiz blok. Ia melibatkan penambahan seberapa banyak bait yang diperlukan untuk mengisi blok terakhir, di mana setiap bait ditetapkan kepada bilangan bait padding yang ditambahkan.
Menambah Padding PKCS7
Untuk menambah Pelapik PKCS7 kepada plaintext sebelum penyulitan menggunakan AES:
Alih keluar Padding PKCS7
Untuk mengalih keluar padding PKCS7 daripada ciphertext selepas penyahsulitan menggunakan AES :
Fungsi PHP untuk melaksanakannya operasi:
function encrypt($plaintext, $key) { $block = mcrypt_get_block_size('aes', 'ecb'); $pad = $block - (strlen($plaintext) % $block); $plaintext .= str_repeat(chr($pad), $pad); return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $plaintext, MCRYPT_MODE_ECB); } function decrypt($ciphertext, $key) { $ciphertext = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $ciphertext, MCRYPT_MODE_ECB); $block = mcrypt_get_block_size('aes', 'ecb'); $pad = ord($ciphertext[strlen($ciphertext) - 1]); return substr($ciphertext, 0, -1 * $pad); }
Perhatikan bahawa anda disyorkan untuk menggunakan CBC atau mod rantaian lain dan bukannya ECB untuk penyulitan selamat.
Atas ialah kandungan terperinci Bagaimana untuk Menambah dan Mengalih Keluar Padding PKCS7 untuk Penyulitan AES dalam Mod ECB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!