如何使用dotnetzip或sharpziplib解压缩受密码保护的文件(如果密码未知)。
答案 0 :(得分:8)
GPL-3 zip密码破解代码:http://oldhome.schmorp.de/marc/fcrackzip.html
使用Ubuntu提供的软件包,我的机器花了19秒时间破解了所提供的样本.zip文件的密码(如README中所述)。
答案 1 :(得分: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)
。它会为不正确的密码抛出异常。
我认为如果你认真对待破解拉链,你可以用C或C ++来做,使用更智能的算法。
答案 2 :(得分:3)
没办法。您需要密码,要么记住密码,要么是知道密码的人,或者您需要密码恢复工具,这应该存在于网络黑暗的某个地方。