php 7.3, не работает функция mcrypt_get_iv_size
у меня есть данный код
class Security
{
// default encryption key when not specified
const DEFAULT_ENCRYPTION_KEY = '~s@1v@g3d@t@t@t!';
public static function encrypt($data,$key = self::DEFAULT_ENCRYPTION_KEY)
{
$key = self::DEFAULT_ENCRYPTION_KEY;
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $data, MCRYPT_MODE_ECB, $iv);
return trim(base64_encode($encrypted));
}
public static function decrypt($data,$key = self::DEFAULT_ENCRYPTION_KEY)
{
$key = self::DEFAULT_ENCRYPTION_KEY;
$encrypted = base64_decode($data);
$iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB);
$iv = mcrypt_create_iv($iv_size, MCRYPT_RAND);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $encrypted, MCRYPT_MODE_ECB, $iv);
return trim($decrypted);
}
}
но этот код не работает на ферсии 7.3, но работает на версии 7.1
как переделать код, чтобы он работал на версии 7.3?
ошибка которую я получаю Call to undefined function mcrypt_get_iv_size()
Ответы (1 шт):
Автор решения: Yaroslav Molchan
→ Ссылка
Скорее всего не установлен модуль mcrypt для 7.3, а для 7.1 установлен.
На примере Ubuntu установить можно попробовать так:
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.1
И потом создать файл /etc/php/7.3/cli/conf.d/mcrypt.ini и прописать в нём:
extension=/usr/lib/php/.../mcrypt.so (заменить на ваш)
Аналогично для другой OS ищите как установить этот модуль.