对于一个zip
格式的压缩包,默认密码是6位数字。暴力破解的基本思路是,调用Python中的zipfile
模块的trypassword
函数,尝试从0
到999999
的所有数字,成功解压时即为相应的压缩密码。
我们可以采用多个线程分片负责的思路,将0
到999999
进行分片,每个区间由一个线程负责,多个线程同时并行处理,这样可以将破解速度提高多倍。
基于字典的密码破解
对于密码是纯数字的,我们可以采用上述暴力破解的思路。如果密码的字符集和长度均未知时该如何破解呢?我们可以采用基于字典的密码破解方法。
编程要求
有一个加密的Zip格式的压缩文件step1/noname.zip
,它的密码未知。
现在已知密码是**6
位纯数字**,请在右侧编辑器中的Try
函数中,尝试破解这个文件的密码,并将其密码返回。
评测系统会尝试使用这个密码解压step1/noname.zip
,如果解压成功,则会输出解压成功
,否则会输出解压失败
。
提示:密码数字不会太大,可以从000000
开始尝试。
代码如下:
import zipfile
def Try():
path = 'step1/noname.zip' #压缩文件路径
#破解并返回密码
zipFile =