4

如何使用 dotnetzip 或 sharpziplib 解压缩受密码保护的文件(如果密码未知)。

4

3 回答 3

8

GPL-3 zip 密码破解代码: http: //oldhome.schmorp.de/marc/fcrackzip.html

使用 Ubuntu 提供的软件包,我的机器花了 19 秒来破解提供的示例 .zip 文件的密码(如 README 中所述)。

于 2010-07-06T11:29:56.597 回答
7

zip 文件格式的密码应用于压缩文件条目数据。这意味着 zip 文件没有单一密码。一个 zip 文件中有 N 个 zip 条目,每个条目可以有一个不同的密码,或者根本没有密码。有时您会得到所有条目都使用相同密码的 zip 文件,但这不是规范所要求的,也不是 DotNetZip 强制要求的。

使用 DotNetZip,您可以隐式读取 zip 文件的“中央目录”以获取 zip 文件中的文件(或条目)列表,而无需使用任何密码。再一次,记住密码适用于 zip 条目,而不是 zip 文件本身。

所以,像这样:

using (var zip = ZipFile.Read("myzip.zip")) {
  foreach (var e in zip.Entries) {
    System.Console.WriteLine("Entry: {0}", e.FileName);
  }
}

... 将打印出 zip 文件中的条目名称列表,无论任何条目是否受密码保护。

如果您想尝试“破解”受密码保护的条目的密码,您可以反复调用ZipEntry.ExtractWithPassword(password). 如果密码不正确,它将引发异常。

我想如果你真的想破解一个 zip,你会用 C 或 C++ 来做,使用更智能的算法。

于 2010-11-08T02:37:29.110 回答
3

没门。您需要密码,或者您记得密码或知道密码的人,或者您需要密码恢复工具,它应该存在于网络的黑暗面某处。

于 2010-07-06T11:23:36.393 回答