如何使用 dotnetzip 或 sharpziplib 解压缩受密码保护的文件(如果密码未知)。
3 回答
GPL-3 zip 密码破解代码: http: //oldhome.schmorp.de/marc/fcrackzip.html
使用 Ubuntu 提供的软件包,我的机器花了 19 秒来破解提供的示例 .zip 文件的密码(如 README 中所述)。
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++ 来做,使用更智能的算法。
没门。您需要密码,或者您记得密码或知道密码的人,或者您需要密码恢复工具,它应该存在于网络的黑暗面某处。