26

我创建了一个不错的长密码,使用了几次,然后就忘记了;)扭曲的是,我知道一般主题,可能几乎所有字符。我的完美主义者不想撤销密钥或类似的东西(而且我认为无论如何我都需要密码来撤销它,对吧?)。我觉得我应该能够通过暴力破解我输入错误/错误输入的可能布局/字符来解决这个问题。我编写了一个 C 程序来产生这样的组合。不幸的是,我手头没有代码(我现在会以“它不相关”的借口去;)。我也遇到了一些代码在网络上使用 GPGME 来做这个作为概念验证。它有评论“这很容易快 100 倍”。问题是,分析代码显示瓶颈是 GPGME 调用本身。这是预期的,还是 GPGME 的限制可以使用完整的库或专用实现来解决?

你会怎么做呢?显然,这种方法对于任何像样的未知密码短语都是不可行的,但我认为关键是我知道我输入了什么而不知道我输入它的确切格式- 应该是可行的,不是吗?

4

1 回答 1

4

(而且我认为无论如何我都需要密码来撤销它,对吧?)

不,您需要撤销密钥。您应该在创建密钥时生成并打印出来。然后将其存储在安全的地方,而不是当您不希望有人使用它来撤销您的密钥时。

我试图暴力破解我几乎记得的密码,但没有成功。仍然有很多排列,并且需要很多规则才能将其缩小到合理的问题规模。我从来没有在这方面努力过,因为幸运的是我从来没有忘记我的 GPG 密码。大多数情况下,当我忘记密码时,它是对大学远程机器的登录,而且我从不想用我的猜测来敲击 ssh 端口或 webmail。

也许你调用的函数做了很多不依赖于键的设置?因此,您可以通过将代码从库中复制出来并稍后将蛮力循环放入其中来加快速度。

于 2009-12-05T08:25:05.217 回答