2016. 8. 3. 17:53ㆍ개발/PHP
php7 에서는 mcrypt_ecb가 removed 되었다.
php5.5부터 deprecated가 되었는데 그것도 모르고 잘만 쓰고 있었다...
This function was DEPRECATED in PHP 5.5.0, and REMOVED in PHP 7.0.0.
Alternatives to this function include:
그래서 대체 함수를 무엇으로 할까 하다가 mcrypt_encrypt() 를 이용하게 되었다.
기존에는 key를 20자리를 썼었는데 변경하면서 16, 24, 32자리만 된다고 해서 24자리로 업데이트를 하였다.
기존
base64_encode(mcrypt_ecb(MCRYPT_GOST, $key, $value, MCRYPT_ENCRYPT));
mcrypt_ecb(MCRYPT_GOST, $key, base64_decode($encry_code), MCRYPT_DECRYPT);
변경
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($iv_size, MCRYPT_DEV_URANDOM);
$encry = base64_encode($iv . mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $payload, MCRYPT_MODE_CBC, $iv));
echo mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, substr(base64_decode($encry), $iv_size, strlen(base64_decode($encry))), MCRYPT_MODE_CBC, substr(base64_decode($encry), 0, $iv_size));
'개발 > PHP' 카테고리의 다른 글
PHP, 외부 서버에 파일 업로드 (0) | 2017.10.10 |
---|---|
MAMP에서 header가 작동하지 않을때 (0) | 2017.03.17 |
bitnami 사용시 캐싱 비활성화 (2) | 2017.02.01 |
IE10 이하에서 페이스북 로그인이 안되요? (0) | 2015.12.04 |
mysqli와 pdo (0) | 2015.11.03 |