今天尝试用zipfile模块破解一下压缩文件的密码。前提:首先自己建一个压缩文件,并设置密码。
首先当然是测试已知密码的解压:
import zipfile zfile = zipfile.ZipFile(r'C:Usersxxxout.zip') zfile.extractall(r'C:Usersxxxpojie', pwd='123456'.encode()) # 使用密码进行解压全部
其次是暴力破解,我这里用的密码比较简单。就六位纯数字。
import zipfile import time def unzip(pwd): zfile = zipfile.ZipFile(r'C:xxx1 est.zip') # 加密的压缩文件位置 # 开始尝试解压 try: zfile.extractall(r'C:xxx1out', pwd=pwd.encode()) # 尝试利用密码解压到指定目录 print('已经利用密码%s解压成功。' % (pwd)) return 1 # 返回判定状态 except RuntimeError: print('正在用密码%s进行尝试。。。' % (pwd)) time.sleep(2) return 0 if __name__ == "__main__": for pwd in range(100000, 9999999999): #定义六位到十位的数字密码 if unzip(str(pwd)): # 判定是否成功 break # 终止循环 else: continue # 否则就继续
为了让破解进度快些,我设置的密码为100005,六位数字密码。结果如下: