AES 암호화를 위한 PKCS7 패딩
ECB 모드에서 128비트 AES 암호화를 사용하여 데이터를 암호화하는 경우 PKCS7 패딩이 필요할 수 있습니다. 데이터는 블록 크기의 배수입니다. 이 패딩은 데이터 끝에 가변 개수의 바이트를 추가합니다. 여기서 각 바이트의 값은 추가된 패딩 바이트 수를 나타냅니다.
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); ?>
PKCS7 패딩 제거
암호 텍스트 문자열에서 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!