С этого дня я использовал mcrypt на своем веб-сайте для шифрования адреса электронной почты пользователей. Модуль php mcrypt был установлен с php 7.4 на моем последнем сервере, поэтому он не создавал никаких проблем. Поскольку мне нужно было сменить хостинговую компанию, они не предоставили мне установку mcrypt на свой сервер. Поэтому мне нужно изменить функцию, которая будет поддерживаться на php 7.4. У меня была эта функция для шифрования адреса электронной почты моих пользователей по соображениям безопасности, если когда-либо произошла инъекция sql.
function encrypt_128($string){
$string = rtrim(base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $string, MCRYPT_MODE_ECB)));
return $string;
Я заменил эту функцию, но она не возвращает тот же вывод.
function encrypt_128($string){
return rtrim(base64_encode(openssl_encrypt($string, 'aes-256-ecb', $key, OPENSSL_RAW_DATA)));
Я читал, что mcrypt не использует заполнение, и я попытался добавить OPENSSL_ZERO_PADDING , но он больше не может зашифровать адрес электронной почты пользователя и не возвращает никаких результатов. Мне понадобится эта функция для того же вывода, потому что новые пользователи могут зарегистрироваться с тем же адресом электронной почты, что и старые пользователи.