linux - OpenSSL命令行解密打嗝

标签 linux macos shell openssl

我希望每个人都过得很好。我希望有人能在这里给我一个正确方向的指示。

2013 年左右的某个时候,我使用 OpenSSL 在 Mac 操作系统机器上加密了一个文本文件。不太确定是哪个版本的 OpenSSL 或 MacOS X。

我用它加密了;

openssl des3 -in unencrypted.txt -out encrypted

它的输出看起来像是某种二进制格式,所以我使用 xxd 将其转换为十六进制,然后输出一个我保存在某处的文本文件。

xxd encrypted >> encryptedhex.txt

为了反转我用的过程

xxd -r encryptedhex.txt encrypted.bin
openssl des3 -d -in encrypted.bin -out decrypted.txt

我记得测试过几次,它似乎工作正常。现在快进到 2017 年。

我在 Debian 9 机器上,我正在尝试解密这个文件。

每当我提供我认为正确的密码时,我都没有收到任何错误,但输出文件似乎是垃圾。我不知道如果密码不正确是否有可能不出错,但每当我输入一个我知道是错误的密码时它就会吐出

bad decrypt 140492140782848:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:../crypto/evp/evp_enc.c:535:

我意识到现在有更好的方法可以做到这一点,但我被现有的东西困住了,它似乎不想工作。

新版本的 openssl 是否向后兼容?加密文件是否可能已损坏? (如果我查看原始二进制加密文件,我会以“salted__”开头,所以看起来我还记得当时的情况……)

你们有什么建议吗?谢谢!

最佳答案

尝试将 -md md5 添加到您的解密命令行。在 OpenSSL 1.1.0 中,用于从密码生成 key 的默认哈希从 md5 更改为 sha256:

https://www.openssl.org/docs/faq.html#USER3

关于linux - OpenSSL命令行解密打嗝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47157430/

相关文章:

c - mov后正确读取gdb值

linux - 防止 Perl 程序在使用系统写入 sh 终端后打印换行符

linux - Linux 中的 Hybris E&M 环境变量

php - pecl:找不到命令

linux - 如何在 linux 中最后一次出现特定命令之前运行所有命令

bash - 如何在 bash 中连接使用 printf 格式化的字符串

linux - Unix 搜索忽略大写

macos - Mac 聚光灯 : How does it work so quickly?

swift - 如何有效地将 PDF 转换为 PNG?

regex - 如何在正则表达式匹配后打印下几行直到另一个正则表达式匹配?