我已经忘记了在Linux上GPG密钥的密码。请帮忙编写一个简单的脚本来使用暴力破解破解密钥吗?我还记得可能在密码中有几个单词,所以希望我的计算机能够很快地进行暴力破解。
如果我无法恢复密码,也不是一切都失去了,这意味着我将不能在接下来的10天内参与项目开发,直到回到工作中心获取文件的另一个副本,但这次需要新的密钥,我将记住密码。
然而,在这10天内能够参与项目开发会是件好事。
我已经忘记了在Linux上GPG密钥的密码。请帮忙编写一个简单的脚本来使用暴力破解破解密钥吗?我还记得可能在密码中有几个单词,所以希望我的计算机能够很快地进行暴力破解。
如果我无法恢复密码,也不是一切都失去了,这意味着我将不能在接下来的10天内参与项目开发,直到回到工作中心获取文件的另一个副本,但这次需要新的密钥,我将记住密码。
然而,在这10天内能够参与项目开发会是件好事。
可能是这样的:
#!/bin/bash
#
# try all word in words.txt
for word in $(cat words.txt); do
# try to decrypt with word
echo "${word}" | gpg --passphrase-fd 0 --no-tty --decrypt somegpgfile.gpg --output somegpgfile;
# if decrypt is successfull; stop
if [ $? -eq 0 ]; then
echo "GPG passphrase is: ${word}";
exit 0;
fi
done;
exit 1;
1) 这个脚本不会简单,至少不是你所想象的“简单”。
2) 它需要很长时间——这就是使用口令短语而不是简单密码的原因。编写这样的脚本,将你的单词(可能不在短语中)和尝试迭代结合起来,可能需要超过十天的时间。
3) 你很可能也会忘记下一个口令短语。
4) 哎呀!
抱歉,伙计,是时候开始一个新项目了(至少可以消磨接下来的十天——我建议一个口令破解器作为理想的消遣方式)。
圣诞快乐!
-Oisin
Tersmitten的回答可能已过时。
echo "${word}" | gpg --passphrase-fd 0 -q --batch --allow-multiple-messages --no-tty --output the_decrypted_file -d /some/input/file.gpg;
我使用了上面这行代码,搭配gpg 2.0.20和libcrypt 1.5.2版本,达成了预期结果。