AES 암호화를 위한 PKCS7 패딩 추가 및 제거
전자 코드북(ECB) 모드에서 128비트 AES 암호화를 사용하여 데이터를 암호화하는 경우 일반 텍스트와 암호문에 PKCS7 패딩을 추가하고 제거하는 데 필요합니다.
PKCS7 패딩은 데이터 길이가 블록 크기의 배수가 되도록 보장하는 RFC 5652에 정의된 방법입니다. 여기에는 마지막 블록을 채우는 데 필요한 만큼의 바이트를 추가하는 작업이 포함되며, 여기서 각 바이트는 추가된 패딩 바이트 수로 설정됩니다.
PKCS7 패딩 추가
추가하려면 AES를 사용하여 암호화하기 전에 일반 텍스트에 PKCS7 패딩:
PKCS7 패딩 제거
AES를 사용하여 암호 해독한 후 암호문에서 PKCS7 패딩을 제거하려면:
이러한 작업을 수행하는 PHP 함수:
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); }
사용을 권장합니다. 안전한 암호화를 위해 ECB 대신 CBC 또는 기타 체인 모드를 사용하세요.
위 내용은 ECB 모드에서 AES 암호화를 위해 PKCS7 패딩을 추가하고 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!