我希望每个人都过得很好。我希望有人能在这里给我一个正确方向的指示。
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:
关于linux - OpenSSL命令行解密打嗝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47157430/