【发布时间】: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
我的问题:
- 我保存在 file2 中的 gobbledegook 是否有可能包含最初在 file1 中的加密信息?
- 有什么方法可以恢复和解密 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”则更加冗长。
【问题讨论】:
-
对于那些投票结束的人 - 我意识到这并不适合 SO。谁能推荐一个更好的地方来发布这个?
-
我想到的其他三个交流(对我来说):Super User、Information Security Stack Exchange 和 Reverse Engineering Stack Exchange。甚至可能是Programming Puzzles & Code Golf。如果你写了一个脚本来解决这个问题,那么你甚至可以尝试Unix & Linux Stack Exchange(这甚至可以让它回到这里的主题)。不过,Crypto SE 上的人们可能对此并不满意。
标签: bash encryption cryptography openssl des