На самом деле у меня есть плагин wordpress, который используется в качестве шлюза для woocommerce, он работал нормально до обновления PhP 7.1 до Php 7.2 на сервере. Как вы, ребята, знаете, php7.2 не поддерживает mcrypt_encode и mcrypt_decode, и вместо этого предлагается использовать openssl_encrypt... старый код для шифрования выглядит следующим образом: public function encrypt($string =)
{
global $KEY,$IV;
$key1 = base64_decode($this->KEY);
$iv1 = base64_decode($this->IV);
return base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key1, $this->addpadding($string), MCRYPT_MODE_CBC, $iv1));
}
public function decrypt($string ="")
{
global $KEY,$IV;
$key = base64_decode($this->KEY);
$iv = base64_decode($this->IV);
$string = base64_decode($string);
return $this->strippadding(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $string, MCRYPT_MODE_CBC, $iv));
}
Я пытался преобразовать их в openssl в качестве документации, но я предполагаю, что есть что-то, о чем я не знаю, или у меня недостаточно знаний (к сожалению) ...
не могли бы вы, ребята, помочь мне преобразовать этот код (который выше) в версию openssl!?
заранее спасибо
MCRYPT_RIJNDAEL_256
— это Rijndael с размером блока 256 бит. Rijndael поддерживает различные размеры блоков, см. здесь. AES — это подмножество Rijndael с размером блока 128 бит (и размером ключа 128, 192 и 256 бит). OpenSSL поддерживает AES, но нет Rijndael с размером блока 256 бит. Вам, вероятно, придется переключиться на другую библиотеку, например. < i>phpseclib. - person user 9014097   schedule 21.10.2020