Ситуация такая. Допустим вот этот код:
$key = 'asdfg';
$plaintext = 'Шифруемый текст';
$cipher = "aes-128-gcm";
$iv = 'asdf';
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options = 0, $iv, $tag);
echo $ciphertext;
А вот этот код ее не расшифровывает:
$key = 'asdfg';
$iv = 'asdf';
$ciphertext = 'TGNHV3h0cFJ4TmJjWXZEUHR1c2h2WTUwSDhIVTM0d1FuellJdnlJPQ==';
$cipher = "aes-128-gcm";
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options = 0, $iv, $tag);
echo $original_plaintext;
При этом код с https://www.php.net/manual/ru/function.openssl-encrypt.php
$key = 'asdfg';
// например, с помощью openssl_random_pseudo_bytes
$plaintext = "данные для шифрования";
$cipher = "aes-128-gcm";
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, $tag);
// сохраняем $cipher, $iv и $tag для дальнейшей расшифровки
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $key, $options=0, $iv, $tag);
echo $original_plaintext."\n";
}
Что я делаю не так?