背景: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()
