Openssl 从命令问题中的加密文本解密

Openssl 从命令问题中的加密文本解密

我正在使用以下命令来解密 base64 字符串。

openssl enc -in ciphertext -out binarytext -d -a

openssl rsautl -decrypt -in binarytext -out plaintext -inkey private.pem

当我的密文中有字符 / 时,我遇到了一个问题,linux 将其视为目录分隔符。如何解决这个问题?

示例密文如下:

MpTF1+cqa23PdxQ6EoG9E77jfRJGYjORc4omawTg/g8jtUDZNNEeEr3waadTSLjQAfmJO94fpaA145yanoU9khrzCd/nAGIIAVwMC67UnsX+XY6dOEZMo41Z0dU1n42rUtkdXgldHXR1SQXaeDyjRnMj/mMMreNdykl8b4vNVPk=

我得到的错误是

ptpll081:密钥管理员$ openssl rsautl -decrypt -in MpTF1+cqa23PdxQ6EoG9E77jfRJGYjORc4omawTg/g8jtUDZNNEeEr3waadTSLjQAfmJO94fpaA145yanoU9khrzCd/nAGIIAVwMC67UnsX+XY6dOEZMo41Z0dU1n42rUtkdXgldHXR1SQXaeDyjRnMj/mMMreNdykl8b4vNVPk= -out plaintext -inkey PrivateKey.pem 读取输入文件时出错 22313:错误:02001002:系统库:fopen:没有此文件或目录:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:126:fopen('MpTF1 + cqa23PdxQ6EoG9E77jfRJGYjORc4omawTg/g8jtUDZNNEeEr3waadTSLjQAfmJO94fpaA145yanoU9khrzCd/nAGIIAVwMC67UnsX + XY6dOEZMo41Z0dU1n42rUtkdXgldHXR1SQXaeDyjRnMj/mMMreNdykl8b4vNVPk =','rb')22313:错误:2006D080:BIO例程:BIO_new_file:没有这样的文件:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:129:

答案1

尝试这样的操作:

openssl rsautl -decrypt -in binarytext -out myfile.txt -inkey private.pem

这里重要的是-out myfile.txt

答案2

-in需要一个文件名,并且您正在传递编码的密文。

将密文放入文件中input

MpTF1+cqa23PdxQ6EoG9E77jfRJGYjORc4omawTg/g8jtUDZNNEeEr3waadTSLjQAfmJO94fpaA145yanoU9khrzCd/nAGIIAVwMC67UnsX+XY6dOEZMo41Z0dU1n42rUtkdXgldHXR1SQXaeDyjRnMj/mMMreNdykl8b4vNVPk=

然后尝试:

openssl rsautl -decrypt -in input -out plaintext -inkey private.pem

相关内容