다음과 같은 에디터 자동완성 모듈에서 오류가 나옵니다.
function encodeImg($plaintext, $password)
{
$password = hash('sha256', $password, true);
$plaintext = gzcompress($plaintext);
$iv_source = defined('MCRYPT_DEV_URANDOM') ? MCRYPT_DEV_URANDOM : MCRYPT_RAND;
// $iv = mcrypt_create_iv(32, $iv_source);
$iv = random_bytes($iv_source);
$ciphertext = openssl_encrypt('rijndael-256', $password, $plaintext, 'cbc', $iv);
$hmac = hash_hmac('sha256', $ciphertext, $password, true);
return base64_encode($ciphertext . $iv . $hmac);
}
{
$password = hash('sha256', $password, true);
$plaintext = gzcompress($plaintext);
$iv_source = defined('MCRYPT_DEV_URANDOM') ? MCRYPT_DEV_URANDOM : MCRYPT_RAND;
// $iv = mcrypt_create_iv(32, $iv_source);
$iv = random_bytes($iv_source);
$ciphertext = openssl_encrypt('rijndael-256', $password, $plaintext, 'cbc', $iv);
$hmac = hash_hmac('sha256', $ciphertext, $password, true);
return base64_encode($ciphertext . $iv . $hmac);
}
$iv = mcrypt_create_iv(32, $iv_source);
php 7.2 에서 mcrypt_ 가 제거 되었다고 하는데 random_bytes 를 쓰라고 하는데 어떻게 고쳐야 하나요?
댓글 4
random_bytes 함수는 무조건 글자의 길이를 뜻하는 숫자형태(int)의 숫자만 들어가도록 되어있습니다;;