这个问题在这里已经有一个答案:

我忘记了我在Linux上的GPG密钥的密码。有人可以帮助我编写一个简单的脚本来使用bruteforce破解钥匙吗?我记得一些可能在密码中的单词,因此希望我的计算机不会花很长时间才能爆发它。

如果我无法恢复密码,一切都不会丢失,这只是意味着我将在接下来的10天内无法从事我的项目,直到我重新上班以获取另一个文件的副本,但是这次是我会记得密码的新钥匙。

但是,能够在这10天内从事我的项目将很高兴。

有帮助吗?

解决方案

1)脚本不会简单,至少您如何设想“简单”。

2) 将要 花很长时间 - 这就是在简单密码上使用通行短语的重点。花时间编写这样的脚本,将您的单词结合在一起,可能不在短语中,迭代时可能会花费十天以上。

3)您可能也会忘记下一个密码。

4)哎呀!

对不起,伙计,是时候开始一个新项目了(至少在接下来的十天之内,我建议使用密码饼干作为理想的干扰。)

圣诞节快乐!

-oisin

其他提示

也许类似:

#!/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;

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来实现所需的结果。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top