我有一个要加密的字符串:
$encryptThis = "Super Secret Text";
echo openssl_encrypt($encryptThis, 'aes-128-cbc', '1234', FALSE, 'F68A9A229A516752');
然后我通过 wget 获取该 php 文件并最终得到看起来像 base64 字符串的内容。
当我尝试在命令行上对其进行解码时,我收到“读取输入文件时出错”。我用来尝试解密的命令是:
openssl aes-128-cbc -a -iv F68A9A229A516752 -d -in encrypted.txt -out decypted.txt
crypto.txt 是我保存的文件名。我缺少什么?
文件encrypted.txt
命令行 OpenSSL 的格式不正确。它期望您的数据以字符串开头Salted__
,然后加盐。您的文件没有这种格式,因此 OpenSSL 打印“读取输入文件时出错”(来自apps/enc.c
在 OpenSSL 源代码中)。
请注意,在 Base64 文件中,标头不是纯文本Salted__
,而是U2FsdGVkX1
.
So do cat encrypted.txt
从命令行查看它包含的内容。
(不知道PHP是否openssl_encrypt
应该以这种格式生成输出,但如果它只是 OpenSSL 命令行实用程序的一个薄包装器,我会这么认为。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)