Я делаю тест с php openssl_encrypt и openssl_decrypt в простом скрипте, не имея 2 внутри какой-либо функции, но как только я помещаю openssl_encrypt внутри пользовательской функции, она не работает, и нет четких возвращаемых строк ошибок.Просто понятия не имею, в чем проблема.Я приложил пример.
Так что, если я закомментирую строку openssl_encrypt и использую encrypt (), то это не сработает, но если вернуть openssl_encrypt, то снова заработает.Любая идея, в чем проблема, когда я использую encrypt ()?
$algo = 'aes-256-gcm';
$options = 0;
$iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length($algo));
$key = '13123123123';
$data = 'test';
$tag = null;
//$ciphertext = openssl_encrypt($data, $algo, $key, $options, $iv, $tag);
$ciphertext = encrypt($data, $algo, $key, $options, $iv, $tag);
$decrypt = openssl_decrypt($ciphertext, $algo, $key, $options , $iv, $tag);
if (false === $decrypt) {
echo sprintf("OpenSSL error: %s", openssl_error_string()."\n");
}
echo "data:$data\n";
echo "decrypt:$decrypt\n";
printf ("Decryption %s\n", $data === $decrypt ? 'Ok' : 'Failed');
function encrypt($data, $algo, $key, $options, $iv, $tag) {
return openssl_encrypt($data, $algo, $key, $options, $iv, $tag);
}