手动修复损坏的des3加密文件

时间:2015-03-02 01:35:04

标签: bash encryption cryptography openssl des

我弄乱了我的加密文件,我正在寻求帮助将其恢复。我将跳过我所做的,问题是什么,忽略了为什么我没有任何备份就做了这个愚蠢的事情的细节。好的,所以我做了以下事情:

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

contents="important sekrit stuff"

1。使用openssl和des3使用密码“rightpass”加密文本并保存到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

我的问题:

  1. 我在file2中保存的gobbledegook是否包含最初在file1中的加密信息?
  2. 有没有办法恢复和解密file1过去包含的信息?我假设文件末尾有一些二进制文件需要删除或添加,或者我不能用文本编辑器做些什么。
  3. 请记住,虽然我对编程很熟悉,但我对加密的经验不多。谢谢你的帮助。

    更新

    使用@ 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”更像是gobbledegook。

1 个答案:

答案 0 :(得分:0)

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

因此,您应该尝试使用 wrongpass 再次加密,然后使用 rightpass 进行解密。

相关问题