OpenSSL 一行 base64 输入。读取输入文件时出错
Posted
技术标签:
【中文标题】OpenSSL 一行 base64 输入。读取输入文件时出错【英文标题】:OpenSSL one line base64 input. error reading input file 【发布时间】:2014-03-13 01:56:01 【问题描述】:我有 AES 加密文件,该文件编码为 base64 单行字符串(没有断线),需要对其进行解密。 Here it is.
但是当我使用时:
openssl enc -d -a -aes-256-cbc -in encrypted -out decrypted
OpenSSL 抛出“读取输入文件时出错” 但是 base64 util 解密它就像一个魅力:
base64 -d encrypted | openssl enc -d -aes-256-cbc > decrypted
试图找到原因并转换为一行base64文件:
base64 -w 0 aesfile | openssl enc -d -a -aes-256-cbc > decrypted
# error reading input file
base64 aesfile | openssl enc -d -a -aes-256-cbc > decrypted
# no errors, file decrypted
结论:OpenSSL 无法解码非多行 base64 输入
【问题讨论】:
你有什么问题? 你的结论是正确的。 Openssl base64 解码不适用于长度超过 64 个字符的行。如果它们更长,则需要在每 64 个字符后插入一个换行符。 【参考方案1】:加密
openssl enc -aes-256-cbc -pass pass:YOURPASSWORD -p -in msg.txt -out enc.txt -base64
解密
openssl enc -aes-256-cbc -base64 -pass pass:YOURPASSWORD -d -p -in enc.txt -out dec.txt
如果在base64
行之后的加密文件中没有newline
,则会收到错误提示error reading input file
。
【讨论】:
ie:要解密的 base64 字符串需要尾随换行符。感谢您提供此解决方案!以上是关于OpenSSL 一行 base64 输入。读取输入文件时出错的主要内容,如果未能解决你的问题,请参考以下文章