
openssl_decrypt 함수는 암호화된 데이터를 복호화하는 데 사용되며, AES-256-CBC 알고리즘을 사용합니다. 이 알고리즘은 128비트 블록 크기를 사용하며, 암호화된 데이터의 길이는 블록 크기인 16바이트의 배수여야 합니다.
암호화된 데이터의 길이가 16바이트인 경우에도 오류가 발생하는 이유는 복호화 함수에 암호화된 데이터의 길이가 32바이트인 것을 기대하기 때문입니다.
이 문제를 해결하기 위한 방법은 복호화 함수의 4번째 인자인 iv를 16바이트로 설정하는 것입니다.
#hostingforum.kr
php
$data = openssl_decrypt($encrypted_data, 'AES-256-CBC', '비밀키', 0, substr($encrypted_data, 0, 16));
위 코드에서 substr 함수를 사용하여 암호화된 데이터의 처음 16바이트를 iv로 설정합니다.
또한, 복호화 함수의 5번째 인자인 tag를 설정하는 것도 중요합니다. tag는 암호화된 데이터의 마지막 16바이트를 의미하며, 복호화 함수에 tag를 설정하지 않으면 오류가 발생할 수 있습니다.
#hostingforum.kr
php
$data = openssl_decrypt($encrypted_data, 'AES-256-CBC', '비밀키', 0, substr($encrypted_data, 0, 16), substr($encrypted_data, -16));
위 코드에서 substr 함수를 사용하여 암호화된 데이터의 마지막 16바이트를 tag로 설정합니다.
이러한 방법을 통해 openssl_decrypt 함수를 사용하여 암호화된 데이터를 복호화할 수 있습니다.
2025-06-10 20:18