如何使用Python解决简单的zip文件解压密码
发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,小编给大家分享一下如何使用Python解决简单的zip文件解压密码,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!文件创建首先测试文件为test.txt(仅包含单行文本),压缩后文件为
千家信息网最后更新 2025年11月15日如何使用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安全错误
数据库的锁怎样保障安全
大学录取数据库没您的信息
数据库简单部署
软件开发进度时间
四级网络安全技术考几门
网络技术有什么作用
石家庄有软件开发学校吗
虚拟机oa服务器安全吗
服务器端口怎么设置
黄浦区应用软件开发培训
网络安全法中有关职业禁入的规定
数据库活动表有哪些字段
太原互动安全教育展馆软件开发
贵州银行软件开发招聘
计算机软件开发学费贵嘛
电子图书属于什么数据库
软件开发详情描述
网络安全环境现状英文
家里网络安全密钥
开源云数据库安全吗
软件开发可参考规范
为了免密码登录服务器
朝阳区网络技术服务欢迎来电
共享数据库连接线图
solr 数据库
福佳集团软件开发
数据库原理 第五版 完整版
小学网络安全与保密预案
怎么打开云服务器
creo如何退出服务器管理
现在软件开发哪个最好找工作