背景:1.自己压缩的一个文件(很重要),忘了密码(不知道当时手抖,还是怎么了,明明记得是自己常用的密码,却提示错误)
2.自己知道位数,可能是哪个字母或者数字敲错了,所以自己根据有可能输入的字母和数字,生成密码字典,然后暴力破解
下面是代码:
""" @author :Eric-chen @contact :sygcrjgx@163.com @time :2019/7/5 9:28 @desc : """ import zipfile from threading import Thread import itertools def extractFile(zipFile, password): ###提取文件的方法 try: zipFile.extractall(pwd=bytes(password, "utf8")) ##打开压缩文件,提供密码 print("This file\'s password is " + password) ###破解到的密码 except: # print(password) pass ###假如失败,就跳过继续 def mainStep(): zipFile = zipfile.ZipFile('C:\\Users\\chen\\Desktop\\test\\out.zip','r') #读取zip文件 pwds = open('C:\\Users\\chen\\Desktop\\test\\password.txt','r') # 读入所有密码 for line in pwds.readlines(): # 挨个挨个的入读密码 pwd = line.strip('\n') t = Thread(target=extractFile, args=(zipFile, pwd)) t.start() # 生成密码字典 def dict(): list=[] fp = open('C:\\Users\\chen\\Desktop\\test\\password.txt', 'w+') for i in itertools.permutations('qwe123.QWE', 7): str=''.join(i)+"\n" # list.append(str) fp.write(str) fp.close(); # print(list) if __name__ == '__main__': dict() mainStep()