
mcrypt_decrypt 함수의 key와 iv의 길이는 다음과 같이 설정되어야 합니다.
- key의 길이는 16, 24, 또는 32 byte여야 합니다. (MCRYPT_RIJNDAEL_128은 128비트 블록 크기를 사용하므로, 16byte로 설정해야 합니다.)
- iv의 길이는 16 byte여야 합니다.
위 코드에서 key의 길이는 16 byte로 설정되어 있지만, iv의 길이는 16 byte로 설정되어 있지 않습니다. iv의 길이는 16 byte로 설정해야 합니다.
또한, mcrypt_decrypt 함수의 마지막 인자는 iv를 받을 수 있지만, iv를 사용하지 않는 경우 NULL을 전달해야 합니다. 위 코드에서 iv를 사용하고 있으므로, NULL 대신 iv를 전달해야 합니다.
수정된 코드는 다음과 같습니다.
php
$key = substr(md5("암호화된 키"), 0, 16);
$iv = substr(md5("초기화 벡터"), 0, 16);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $encrypted, MCRYPT_MODE_ECB);
또한, mcrypt 함수는 PHP 7.1에서 deprecated되었으며, PHP 7.2부터는 사용할 수 없습니다. 대신, OpenSSL 함수를 사용하는 것을 권장합니다.
2025-06-14 11:57