【问题标题】:Manually repair corrupted des3 encrypted file手动修复损坏的des3加密文件
【发布时间】:2015-03-02 01:35:04
【问题描述】:

我弄乱了我的加密文件,我正在寻求帮助以取回它。我会跳到我做了什么,问题是什么,忽略了为什么我在没有任何备份的情况下做了这个愚蠢的事情的细节。好的,所以我做了以下操作:

0。创建了一些重要的文本

contents="important sekrit stuff"

1。使用密码“rightpass”使用openssl和des3加密文本并保存到file1

openssl des3 -k "rightpass" -in <(echo "$contents") -out "file1"

2。使用错误密码“wrongpass”解密file1的内容

contents="$(openssl des3 -d -k "wrongpass" -in "file1")"`

3。在 gobbledegook 输出中附加一行文本

4。使用错误的密码“wrongpass”加密该文本并保存到 file1

openssl des3 -k "wrongpass" -in <(echo "$contents" | awk -v k="new stuff1" -v n="newstuff2" '$1 != k {print $0} END {printf "%s %s", k, n}') -out "file1"

5。意识到自己刚刚做了什么,对着电脑骂了几句粗话

6。使用错误密码“wrongpass”解密file1的内容并保存为file2

openssl des3 -d -k "wrongpass" -in "file1" >> "file2"

7。使用文本编辑器从 file2 中的 gobbledegook 末尾删除文本行,并将结果保存到 file2

8。尝试使用“rightpass”解密file2的内容

openssl des3 -d -k "rightpass" -in "file2"

9。得到输出“bad magic number”

bad magic number

我的问题:

  1. 我保存在 file2 中的 gobbledegook 是否有可能包含最初在 file1 中的加密信息?
  2. 有什么方法可以恢复和解密 file1 曾经包含的信息?我假设文件末尾有某种二进制文件需要删除或添加,或者是我无法使用文本编辑器完成的。

请记住,虽然我对一般编程很熟悉,但我对加密的经验很少。感谢您的帮助。

更新

使用@sth的建议,我使用“wrongpass”加密file2的内容,然后使用“rightpass”解密,当我解密时,我得到了消息

>> openssl des3 -k "wrongpass" -in "file2" -out "file3"
>> openssl des3 -d -k "rightpass" -in "file3" -out "file4" 
bad decrypt
140735139465660:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:evp_enc.c:539:

而“file4”则更加冗长。

【问题讨论】:

标签: bash encryption cryptography openssl des


【解决方案1】:

在步骤 7 之后,您应该拥有与步骤 2 之后相同的文件(使用 wrongpass 解密)。

所以你应该尝试用wrongpass再次加密,然后用rightpass解密。

【讨论】:

  • 感谢您的帮助 - 我更新了上面的问题。仍然没有运气 - 我在文本编辑器中删除添加的行的方式可能有问题吗?使用文本编辑器编辑二进制数据不会有问题(在这种情况下我使用的是 nano)。
  • 文件是否以换行符结尾可能会有所不同。此外,您用于附加/删除该行的编辑器可能会弄乱文件中的特殊字符。
  • 好的,我尝试使用 awk 而不是编辑器删除最后一行,并使用我找到的 perl 配方 perl -pi -e 'chomp if eof' filename 删除尾随换行符(我检查的其他加密文件没有尾随换行符)。毕竟我仍然收到bad decrypt 消息:(
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-09
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多