openssl_decrypt выводит пустую строку в codeigniter
Я строю проект на Codeigniter
, Мой проект размещен на сервере с версией PHP 5.4
, Для хранения конфиденциальной информации в базе данных я использовал mcrypt_decrypt для шифрования и дешифрования данных.
Недавно я перенес свой проект на другой сервер с версией PHP 7.1
, После миграции, когда я попытался запустить проект, я получил предупреждение о том, что функция mcrypt_decrypt устарела и, следовательно, я начал искать альтернативу.
И я обнаружил, что openssl_enrypt и openssl_decrypt были эффективным и лучшим решением. Я следовал за кодом как в php.net.
$plaintext = "message to be encrypted";
$cipher = "aes-128-gcm";
$tag = hash('md5', 'The quick brown fox jumped over the lazy dog.');
$key = "HDIdmcj%#&**545JH";
if (in_array($cipher, openssl_get_cipher_methods()))
{
$ivlen = openssl_cipher_iv_length($cipher);
$iv = openssl_random_pseudo_bytes($ivlen);
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options=0, $iv);
echo $ciphertext.'<br/>';
//store $cipher, $iv, and $tag for decryption later
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv);
echo $original_plaintext."\n";
}
Но это не сработало, и я получил пустую строку после отображения переменной $original_plaintext
, Может ли кто-нибудь любезно сообщить мне, что мне не хватает в приведенном ниже коде?