Python 破解带密码保护的Zip文件

时间:2022-09-14 11:52:44

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