使用python破解zip文件密码

来源:互联网 发布:武汉聚友网络 编辑:程序博客网 时间:2024/06/05 14:17

已将代码、运行库、使用说明打包,尽量精简了下。

地址:http://download.csdn.net/download/jiyanglin/10152925





一年半以前,我给自己写了封信,压缩zip加密以后放到qq邮箱,希望未来的自己回头看看当初的理想。

前段时间在邮箱中发现了这封信,拿出来以后,发现忘记了密码。。。想了想自己可能会用到的密码,结果都不对。

然后想了想,人要往前看,过去的就随风而去吧。然后删除了。


周末有空闲时间,突然想起了这件事情,记得曾经看到python有个zip解压api,就来了兴致,做了这个。

从1位开始,一直到20位,逐个尝试的方式,密码可能用到的字符从ascii表里头扣的,95个字符,所以用了96进制计数方案累加位数获取字符(每次进位时候会多运算一次重复密码)。



代码开始定义了如下内容:


word是ascii表里头扣的95个字符,是密码可能会出现的字符,注意!前面的空格是占位符号,不参与计算。

startPos是密码开始破解的位数,0表示从第一开始进行破解,如果知道密码位数,可以设置下这个

maxCount是最大破解位数,可以改改,增大一些


我这里是 64位win10,8G内存,8核i7,250G固态盘,测试的压缩包密码:0a&@,用时:1小时19分钟

0是第word里第16位,a是第65位,&是第6,@是第32位


所以大体上需要:

16*96*96*96 + 65*96*96 + 6*96 + 32 = 14755424

加上每36进一时重复:

14755424 +  14755424/36 = 15165296

最终大概就是1千五百万次。


每多一位就会指数倍增加时间。如果密码10位,估计得好久好久。。。。




操作内容大概如下:

1. 启动程序

点击 开始运行.cmd启动程序

【如果安装过python,可以直接点击decoderZip.pyw运行】

2. 开始运行

点击界面的 Start按钮,在弹出的文件选择对话框中选择要破解的zip文件

3. 运行过程

运行过程中会在控制台刷新当前尝试的密码,界面中显示运行耗时

4. 处理完成

完成后会生成一下结果:

1.界面显示完成状态,以及密码和运行耗时

2.在压缩包路径下生成解压后的文件及password.txt,存放破解的密码