Преобразование mcrypt_encrypt в openssl_encrypt

На самом деле у меня есть плагин 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!?

заранее спасибо


person ashkan    schedule 21.10.2020    source источник
comment
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
comment
Отвечает ли это на ваш вопрос? mcrypt устарел, какая альтернатива?. См. особенно этот и этот ответ. .   -  person user 9014097    schedule 21.10.2020