如何使用openssl的CLI解密消息?


8

我有一条消息,我知道用于加密它的密码和密码,但是我不知道如何要求openssl对其进行解密。

我在ciphers命令的输出中看到了密码,并且手册页列出了的enc命令Encoding with Ciphers,但是我找不到相反的方法来解码消息。


1
使用什么程序来加密文件?加密程序很可能会将元数据添加到加密的内容中,例如初始化向量,盐,程序的版本等。如果将整体视为加密位,则会产生垃圾。
任思远2014年

较晚,但是:openssl ciphers列出了SSL / TLS的密码套件,实际上它是从不基于密码的,并且不会在以后可以解密的任何地方留下消息(即,如果有文件,则不是SSL / TLS)。openssl enc是一种常用的基于密码的加密方案,但有CMS和(很少)S / MIME PBE和常见的PGP PBE,以及用于密钥(未准确描述为消息)的PBE方案以及其他PBE。
dave_thompson_085 '16

Answers:


1

我认为您正在寻找这样的东西:

openssl yourcipher -d < yourfile

例如,如果文件是使用des3密码加密的,则文件为/path/to/file.des3

openssl des3 -d < /path/to/file.des3

它将要求您输入密码。

如果文件是base64编码的,那么您应该能够像这样解码和解密:

openssl enc -base64 -d < /path/to/file | openssl yourcipher -d

尝试输入密码短语后,我得到“错误的魔术数字”。不确定如何解释。
user50849 2014年

当该文件不是真正的加密文件时,该错误很常见。也许您需要先将其解压缩?
janos 2014年

1
如果我正确理解了我的说明,则我的文件是base64编码的(看起来也像base64,尽管这当然不能保证)。但是我尝试通过它base64 -d [input] > [output],然后openssl [cipher] -d < [output]按原样解密该文件,在两种情况下,我都得到相同的“坏魔术数”。
user50849 2014年

@ user50849我更新了答案,认为您已经在执行此操作了……从base64解码后,该file命令告诉您什么?文件是二进制文件吗?
janos 2014年

我尝试了添加的base64命令,但是不幸的是我得到了同样的错误。文件说data关于解码的文件。我认为您的回答是正确的,而我这方面有问题。我可能损坏了输入或类似内容。我会尽力而为,然后再回来。
user50849 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.