用於AES 加密的PKCS7 填充
在ECB 模式下使用128 位元AES 加密來加密資料時,可能需要PKCS7 填充來確保data 是塊大小的倍數。此填充會在資料末尾添加可變數量的字節,其中每個位元組的值表示添加的填充字節數。
新增 PKCS7 填充
加入明文字串 PKCS7 填充:
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); ?>
刪除PKCSCS7 填充
刪除一個密文PKCSCS中刪除PKCS7填充: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 } ?>
以上是PKCS7 填充如何與 AES 加密搭配使用?的詳細內容。更多資訊請關注PHP中文網其他相關文章!