微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 bash 中使用 PHP openssl_encrypt 加密并使用 openssl 解密

如何解决在 bash 中使用 PHP openssl_encrypt 加密并使用 openssl 解密

我正在尝试用 PHP 加密一个字符串,然后直接在 bash 中用 openssh 解密它:

<?PHP
$var = 'hello';
$key = 'key';
$enc = openssl_encrypt($var,"aes-256-cbc",$key);
echo $enc;
?>

然后我直接在bash窗口中使用openssh中的输出

echo "string get from PHP" | openssl aes-256-cbc -a -d -pass pass:key

但是它不起作用,输出是:

bad magic number

我可以确认bash语句是正确的,因为如果我做下一个,它就可以了:

echo hello | openssl aes-256-cbc -a -pass pass:key | openssl aes-256-cbc -a -d -pass pass:key

结果是你好。

PHP 一样使用:

$dec = openssl_decrypt($enc,$key);

知道如何通过交叉它们、用 PHP 加密并用 bash 或相反的方式解密来做到这一点。

EDIT1:好的,我认为这可能与使用不同版本的 openssl 进行加密而不是解密有关,如本主题 (https://unix.stackexchange.com/questions/403314/bad-magic-number-on-decrypt) 中指出的那样

但是我还是不知道怎么做

有什么帮助吗?谢谢!!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。