zip

时间:2017-05-17 02:54:02

标签: c++ zip compression

因此,作为一个类项目,我试图构建一个简单的存档破解程序。我只是通过shell调用unzip(使用popen)并迭代动态生成的单词列表。

无论如何,我使用密码" hunter"设置了一个测试档案。现在我用更简单的密码检查了我的程序,我知道它有效。然而对于很多" long"密码,该实用程序给出了一个奇怪的错误。所以我尝试在上述存档的情况下手动输入以下密码:

  • "通过" - 重新打开密码对话框,表明密码不正确。
  • "猎人" - zip的内容在目标forlder中解压缩。
  • " dacbe" - 我收到错误说"无法将test.zip扩展为" Project" (错误2 - 没有这样的文件或目录)或者如果通过终端完成,"无效的压缩数据要膨胀"。

所以我想也许是故障的实用程序我切换到Unarchiver,同样的问题与相同的密码字符串。切换了一个不同的第三方实用程序,同样的问题是错误正在"重新运行错误"。

为什么某些密码会发生这种情况?

我正在运行macOS 10.12

1 个答案:

答案 0 :(得分:1)

Unzip对输入的密码进行了故意弱过滤,以检查其是否有效。只检查一个字节的解密数据,因此随机密码有1/256的机会通过该检查并继续解压缩。正如您所发现的,在这种情况下,解压缩很快就会检测到错误的密码。