И это всё МОЁ
Ситуация такая.
Допустим вот этот код:
$key = 'asdfg';
$plaintext = 'Шифруемый текст';
$cipher = "aes-128-gcm";
$iv = 'asdf';
$ciphertext = openssl_encrypt($plaintext, $cipher, $key, $options = 0, $iv, $tag);
echo $ciphertext;
Возвращает строку:
'TGNHV3h0cFJ4TmJjWXZEUHR1c2h2WTUwSDhIVTM0d1FuellJdnlJPQ=='
А вот этот код ее не расшифровывает:
$key = 'asdfg';
$iv = 'asdf';
$ciphertext = 'TGNHV3h0cFJ4TmJjWXZEUHR1c2h2WTUwSDhIVTM0d1FuellJdnlJPQ==';
$original_plaintext = openssl_decrypt($ciphertext, $cipher, $dkey, $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";
}
работает прекрасно. Но у него есть один недостаток. Он работает только в одном скрипте. Я не понимаю как сохранять шифрованные данные чтобы использовать их другими скриптами.
Что я делаю не так?