AES 암호화를 위한 PKCS7 패딩
AES 암호화를 사용할 때 암호화된 데이터 길이가 블록과 일치하도록 PKCS7 패딩을 사용하는 것이 일반적입니다. 기본 암호화 알고리즘의 크기입니다. 그러나 이 패딩 추가 및 제거는 Mcrypt 확장 프로그램에서 처리되지 않아 수동 작업으로 남겨질 수 있습니다.
PKCS7 패딩 설명
RFC 5652에 정의된 대로, PKCS #7 패딩은 패딩 길이와 동일한 값으로 바이트를 추가하는 방식으로 작동합니다. 예를 들어, 3바이트를 채워야 하는 경우 추가된 바이트의 값은 모두 0x03입니다.
PKCS7 패딩 추가
패딩을 수동으로 추가하려면 다음을 계산하세요. 현재 데이터 길이와 원하는 블록 크기 간의 차이. 이 값은 필요한 패딩 바이트 수를 나타냅니다. 그런 다음 패딩 길이와 함께 해당 바이트 수를 데이터 끝에 값으로 추가합니다.
패딩 추가를 위한 샘플 PHP 함수
function addPKCS7Padding($data) { $block_size = 16; $pad_length = $block_size - (strlen($data) % $block_size); $padding = str_repeat(chr($pad_length), $pad_length); return $data . $padding; }
제거 PKCS7 Padding
패딩을 제거하려면 PKCS7의 마지막 바이트를 읽으십시오. 해독된 데이터. 이 값은 패딩의 길이를 나타냅니다. 그런 다음 데이터 끝에서 해당 바이트 수를 제거하면 됩니다.
패딩 제거를 위한 샘플 PHP 함수
function removePKCS7Padding($data) { $pad_length = ord($data[strlen($data) - 1]); return substr($data, 0, -1 * $pad_length); }
구현 참고 사항
위 내용은 PKCS7 패딩은 AES 암호화와 어떻게 작동하며 PHP에서 이를 어떻게 추가하고 제거할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!