31

最近我决定使用 vim 的 :X 加密功能来加密我的工程日志。我写下了密码,但显然我拼错了一些东西或弄乱了一些东西,因为解密文件只会产生乱码。更糟糕的是,我所有的备份都以某种方式损坏了(不要问,我也不知道是怎么回事)。

我不会找借口:我知道我搞砸了。现在我想专注于如何解决我造成的混乱。

这是我尝试过的:

  1. 使用 vimzipper 将加密文件打包在一个 zip 中,这样它就可以被标准的 zip 破解器破解,如 fcrackzip、zipcracker、pkcrack、Advanced Zip Password Recovery 等。不幸的是,这没有奏效。我使用 VIMINFO 中寄存器的剩余信息从文件中恢复了一行纯文本,但文件中没有恢复的纯文本的偏移量。无论如何,zip 破解并没有奏效,即使对于一个带有三个字符的 vim 密码的简单测试文件也是如此。

    (见http://zeus.phys.uconn.edu/refs/crackers/vimzipper.c

  2. 交换文件的恢复不起作用。当我用错误的密码重新打开加密文件时,vim 覆盖了“好的”交换文件。

  3. 使用大型纯文本数据库(约 30 本书来自 Project Gutenberg)作为参考数据运行 unixcrypt-breaker。这会导致乱码,即使我只用恢复的明文播种 unixcrypt-breaker。此外,我似乎无法破解使用此方法使用 vim 加密的简单测试文件。(仅供参考,我在运行解密之前剥离了 VimCrypt~01! 魔术头,并在 PASTE 模式下使用 vim 将其剥离,因此我不会更改文件的内容)。

  4. 拼命猜测我能想象到的每一个密码和拼写错误。我花了至少六个小时来猜测我可能拼错了什么。:)

为了从程序中快速尝试密码,我尝试编译 crypt/makekey 的旧 UNIX 副本,但结果与使用 vim 的 -x 加密和相同密码加密的相同文件不同。

如果有人可以提供帮助,我将不胜感激。如果没有,感谢阅读。:)

4

5 回答 5

23

VIM 文档

  • 使用的算法是可破解的。一个 4 个字符的密钥在大约一小时内,一个 6 个字符的密钥在一天内(在 Pentium 133 PC 上)。这要求您知道一些必须出现在文件中的文本。专家可以用任何键破解它。当文本被解密后,这也意味着密钥可以被泄露,其他使用相同密钥加密的文件也可以被解密。

如果它在 Pentium 133 上是可行的,我认为你有很好的机会。:)

我要么使用#vim 询问算法的详细信息,要么浏览源代码以了解加密是如何工作的,然后编写一个密码分析程序。

于 2009-02-22T21:40:09.790 回答
10

除了加密问题之外,您是否可能还会遇到数据损坏问题?

如果我要强制执行此操作,我想我会编写一个算法,开始尝试我可以使用的所有密码变体,然后再进行字典攻击。然而,在听完你的故事之后——我有一种挥之不去的感觉,你没有忘记你的密码,而是在某个地方出现了数据损坏问题,弄乱了你的密码/密码文本/密码密钥/其他任何东西。

于 2009-02-22T22:37:28.093 回答
8

不确定这是否有帮助:

解释如何破解用“crypt”加密的文件,可能会给你一个起点(至少对于旧版本的 vi,加密是基于 crypt)。

于 2009-02-22T21:51:39.420 回答
5

这个古老的新闻组帖子与您的问题类似:

我的问题是我不小心使用 vi 加密了一个脚本并且无法记住密钥。非常感谢所有回复的人。

建议如下:

  • 使用 vi -x 并猜测密钥(我曾尝试过但没有成功)
  • 编写一个程序来进行 crypt 调用并尝试可能的组合键。提出这个建议的人估计大约需要 5 分钟才能破解
  • 从档案中下载 CWB(crypt 断路器工作台),这将有助于破解
  • 将问题发布到 sci.crypt.newsgroup,包括加密后文件的前 128 个字节和加密前的这些字节(如果我记得的话),小组中的某个人可能会帮我破解它
  • 重新输入脚本

打破这一点的一个婴儿床是你知道密码“应该”是什么。因此,即使您有一个随机拼写错误,它仍然会与您的预期密码略有相似。也许您可以从那里开始,编写一个程序来生成您想要的密码与 1 或 2 个字符拼写错误的所有可能组合。

无论如何,多么巧妙的练习/消遣!

于 2009-02-22T22:22:05.290 回答
1

这个问题很老了。这是一个现代解决方案:

使用 hashcat ( https://hashcat.net/hashcat/ )。Hashcat 有一个适用于广泛加密算法的插件,它允许您指定和播种您的(蛮力起点-)字典文件,其中包含您仍然记得的有关丢失密码的提示。

于 2018-12-17T21:30:24.707 回答