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, Может ли кто-нибудь любезно сообщить мне, что мне не хватает в приведенном ниже коде?

0 ответов

Другие вопросы по тегам