如何使用Python解决简单的zip文件解压密码
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,小编给大家分享一下如何使用Python解决简单的zip文件解压密码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!文件创建首先测试文件为test.txt(仅包含单行文本),压缩后文件为
千家信息网最后更新 2026年11月03日如何使用Python解决简单的zip文件解压密码
小编给大家分享一下如何使用Python解决简单的zip文件解压密码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
文件创建
首先测试文件为test.txt(仅包含单行文本),压缩后文件为test.zip,压缩密码为2340,压缩后删除目录下的txt文件。。

上图注意勾选传统加密。
纯数字密码
指的是不用0开头的数字密码,0开头见后面的字母组合。原理就是zipfile模块解压压缩文件时,一旦密码不正确,程序会终止,在try语句只有成功解压的密码才会执行到extract函数调用后面的语句。
代码:
import zipfileimport timeimport threadingstartTime = time.time()# 判断线程是否需要终止flag = True def extract(password, file): try: password = str(password) file.extractall(path='.', pwd=password.encode('utf-8')) print("the password is {}".format(password)) nowTime = time.time() print("spend time is {}".format(nowTime-startTime)) global flag # 成功解压其余线程终止 flag = False except Exception as e: print(e) def do_main(): zfile = zipfile.ZipFile("test.zip", 'r') # 开始尝试 for number in range(1, 9999): if flag is True: t = threading.Thread(target=extract, args=(number, zfile)) t.start() t.join() if __name__ == '__main__': do_main()显然,解压成功,这里提一下这种编码 密码的方式只适用于传统zip加密,winrar有一种新式的默认加密方式,是不可以的。
字母数字混合密码
这里情况密码组合太多,为了防止内存溢出,改用迭代器。这种情况费时很久,可以闲来无事挂着脚本。这里再次压缩文件,密码为python。
import zipfileimport randomimport timeimport sys class MyIterator(): # 单位字符集合 letters = 'abcdefghijklmnopqrstuvwxyz012345678' min_digits = 0 max_digits = 0 def __init__(self, min_digits, max_digits): # 实例化对象时给出密码位数范围,一般4到10位 if min_digits < max_digits: self.min_digits = min_digits self.max_digits = max_digits else: self.min_digits = max_digits self.max_digits = min_digits # 迭代器访问定义 def __iter__(self): return self def __next__(self): rst = str() for item in range(0, random.randrange(self.min_digits, self.max_digits+1)): rst += random.choice(MyIterator.letters) return rst def extract(): start_time = time.time() zfile = zipfile.ZipFile("test.zip") for p in MyIterator(5, 6): try: zfile.extractall(path=".", pwd=str(p).encode('utf-8')) print("the password is {}".format(p)) now_time = time.time() print("spend time is {}".format(now_time-start_time)) sys.exit(0) except Exception as e: pass if __name__ == '__main__': extract()字符的序列组合很多,需要等待。
看完了这篇文章,相信你对"如何使用Python解决简单的zip文件解压密码"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!
密码
文件
成功
数字
加密
组合
传统
字母
字符
开头
情况
方式
篇文章
线程
语句
迭代
新式
闲来无事
上图
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技股
今日互联网科技
疫情对互联网科技公司影响
互联网科技革命
美国互联网黑科技
亿账通互联网科技
互联网前沿科技
互联网科技视频素材
居家互联网科技有限公司
顶级互联网科技成果有哪些
湖南诚度互联网科技有限公司
搜狐科技互联网
广州市恰铎互联网科技有限公司
如何创新互联网科技
每天都有哪些好的互联网科技
梅州GM互联网络科技有限公司
抖集互联网科技技术咨询
世界互联网科技成果奖
美国五大互联网科技公司市值多少
第三届互联网大会安防黑科技
互联网科技名片
互联网科技公司经营范围
互联网科技与金融科技
金融科技与互联网金融
广州紫鲸互联网科技
互联网新科技动漫ppt素材
图游互联网科技
互联网科技包装股份有限公司上市
湖北辰鑫科技互联网
10位科技互联网大佬