openssl 加密在不同的机器上给出不同的输出
openssl encryption gives different output on different machines
我在不同的机器上使用相同的密码和相同的密码加密相同的消息,但每次的结果都完全不同。那么我怎样才能在另一台机器上解密这样的文件呢?
一个最小的例子:
echo "testmessage" > testfile
echo "mypwd" > pwdfile
openssl aes-256-cbc -a -A -salt -in testfile -out out -k pwdfile
cat out && echo
给出:
U2FsdGVkX1/vqur0facod4sMZs+ZT3i3yHe+DwAnV7o=
和
U2FsdGVkX18c6qnuSRrslmnneuDWAH1cp0UC4QyO5PI=
和其他机器上的其他变体
编辑
我也尝试了其他密码(bf、cast、des3,...),只有 base64
在其他机器上得到了相同的结果。然而,我需要解密在另一台机器上加密的 aes-256-cbc
消息。
这不是问题;每次加密的结果都会不同。解密就可以了;也跨不同的机器。
导致我出现问题的真正问题是密码文件的路径:
openssl aes-256-cbc -a -A -d -salt -in out -out outd -k pwdfile && cat outd
会很好地把我的原始文件还给我;但是
openssl aes-256-cbc -a -A -d -salt -in out -out outd -k ./pwdfile && cat outd
失败 Bad decrypt
;实际上并没有使用 pwdfile 的内容,而是 pwdfile 是密码。
我在不同的机器上使用相同的密码和相同的密码加密相同的消息,但每次的结果都完全不同。那么我怎样才能在另一台机器上解密这样的文件呢?
一个最小的例子:
echo "testmessage" > testfile
echo "mypwd" > pwdfile
openssl aes-256-cbc -a -A -salt -in testfile -out out -k pwdfile
cat out && echo
给出:
U2FsdGVkX1/vqur0facod4sMZs+ZT3i3yHe+DwAnV7o=
和
U2FsdGVkX18c6qnuSRrslmnneuDWAH1cp0UC4QyO5PI=
和其他机器上的其他变体
编辑
我也尝试了其他密码(bf、cast、des3,...),只有 base64
在其他机器上得到了相同的结果。然而,我需要解密在另一台机器上加密的 aes-256-cbc
消息。
这不是问题;每次加密的结果都会不同。解密就可以了;也跨不同的机器。
导致我出现问题的真正问题是密码文件的路径:
openssl aes-256-cbc -a -A -d -salt -in out -out outd -k pwdfile && cat outd
会很好地把我的原始文件还给我;但是
openssl aes-256-cbc -a -A -d -salt -in out -out outd -k ./pwdfile && cat outd
失败 Bad decrypt
;实际上并没有使用 pwdfile 的内容,而是 pwdfile 是密码。