最详细Python批量字典暴力破解zip密码
工具破解
前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具
苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法
密码字典
巧的是破解的三个都是4位数字密码,这让我想到了依靠字典破解
说干就干,伸手就来

#生成从0000到9999的密码表
f = open('passdict4.txt','w')
for id in range(10000):
password = str(id).zfill(4)+'\n'
f.write(password)
f.close()
果然猜想没错,破解速度的确快了不
习大大说,科技是第一生产力,创新是引领发展的第一动力
既然有更快速的方法,那为什么不研究个自动的方法出来呢
ZipFile库
Python有个叫ZipFile的库可以解压zip文件,从其相关文档中
ZipFile.extractall(path=None, members=None, pwd=None)
将zip文档内的指定文件解压到当前目录。
参数path指定了解析文件保存的文件夹
参数members指定要解压的文件名称或对应的ZipInfo对象
参数pwd为解压密码。
只需循环读取文件夹下的zip文件然后逐个解压即可
注意:python3有一个中文文件名乱码的,将ZipFile.py中的“cp437”改成“gbk”(两个地方需更改)即可永久解决
# zipfile打开zip文件
z = zipfile.ZipFile(f'{file_path}', 'r'
# path为解压路径,解包后位于该路径下
z.extractall(path=f"{root})
z.close()
在这个基础上再加上循环密码字典
注意:由于解压是密码错误会产生异常,这里可以利用try except进行处理
# 获取字典中的内容
passFile = open(r"D:\python\passdict4.txt")
# 循环获得单个密码
for line in passFile.readlines():
# 去换行
password = line.strip('\n')
try:
zip_file.extractall(path=f"{root}", pwd=password.encode("utf-8"))
print(password)
# 密码对了就不继续下去了
break
except:
# 什么都不做
pass
zip_file.close() # 关闭文件,必须有,释放内存
这么一通操作下来本以为大功告成,没想到事情没那么简单
大多是时候是可以破解的,但是总有些就破解失败了,束手无策的各个网站找方法
刚开始以为是extractall方法调用错了,但是报的错是密码错误,这就让我很迷
偶然见在一个看到一篇文章才得知

默认情况下,WinRAR在CTR模式下使用AES-256加密ZIP文件,而传统加密是通过CRC32加密,即ZIP 2.0传统加密算法,虽然AES-256比ZIP 2.0传统加密算法安全得多,但它可能与一些旧的解压软兼容,而Python标准库中的zipfile模块只支持CRC32加密的zip文件,所以不采用传统加密方式是无法通过zipfile库进行解压的
已经花了这么多心思,要是到这里就放弃,那真的是太淦了
既然加密方式不一样,那么解压软件是怎么做到直接解压的呢
这里产生了一个构想,要是能从代码里调用解压软件,那不就好办了吗
于是我赶紧使用绝技

成功搜索到,7z等多款解压软件有相关功能
调用第三方软件命令行
配置环境变量

命令行验证一下

奈斯,配置成功
passFile = open(r"D:\python\passdict4.txt")
for line in passFile.readlines():
password = line.strip('\n')
# t 测试
command='7z -p'+password+' t '+file_path
child=subprocess.call(command)
if(child==0):
print(password)
break
加密方式不一样的事情是解决了,不过人的贪欲真的是可怕
重复调用命令行这一闪一闪的又让我不爽了
pyzipper库(终极)
恰巧在查加密方式的时候看到有人提出
Python有个pyzipper库可以很好的兼容代替zipfile,可以读写AES加密的zip文件
都走到这了,没有撤退可言
安装pyzipper
pip install pyzipper
会出现中文名乱码情况,记得改下
f1 = open('D:\python\passdict4.txt','r')
with pyzipper.AESZipFile(file_path,'r') as f:
for i in f1:
i = i.rstrip('\n')
f.pwd = str.encode(i)
try:
f.extractall(path=f"{root}")
print(file_path+"\t密码是:"+i)
break
except Exception:
pass
f.close()
f1.close()
这个方法,堪称完美
点击下载相关代码,文件,工具
参考:
1.【补丁破解】ZIP压缩包密码破解工具PassperforZIP_v3.6.0.1
2.python-批量解压zip文件
3.python破解同事的压缩包密码
4.Python实现加密的ZIP文件解压(密码已知)
5.暴力破解(一)——python脚本暴力破解 加密的zip压缩文件
6.7Z命令行详解
7.4.python编写ZIP压缩文件爆破工具
8.Python中的zipfile模块使用详解
9.Python3中zipfile模块文件名乱码问题
最详细Python批量字典暴力破解zip密码的更多相关文章
- 【pyhon】黑客用字典暴力破解Zip文件密码原理性展示
基本原理:用程序把字典文件里拟定好的密码一个个提取出来,去测试zip能否打开 字典文件pass.txt内容: 1224 2121 asdf abcd1234 dwsdsd dssds 程序代码: # ...
- 暴力破解ZIP文件密码
Python 的标准库提供了 ZIP 文件的提取压缩模块 zipfile,现在让我们试着用这个模块,暴力破解出加密的 ZIP 文件!我们可以用 extractall()这个函数抽取文件,密码正确则返回 ...
- 分享一个撩妹、装13神技能,0基础用Python暴力破解WiFi密码
WiFi密码Python暴力破解 Python密码破解部分截图 获取视频资料,转发此文+点击喜欢,然后获取资料请加Python交流群:580478401,就可以获取视频教程+源码 环境准备: py ...
- 忘记秘密利用python模拟登录暴力破解秘密
忘记秘密利用python模拟登录暴力破解秘密: #encoding=utf-8 import itertools import string import requests def gen_pwd_f ...
- 记录ssh暴力破解的密码字典
之前我已经在wooyun和91ri上发表了这篇文章,今天转到51cto上... 默认的ssh日志是不带密码记录功能的,现在想把登录密码记录下来,这样就可以搜集黑客的ssh爆破字典了,从而可以反扫回去. ...
- 使用Medusa美杜莎暴力破解SSH密码
使用Medusa美杜莎暴力破解SSH密码 1.Medusa简介 Medusa(美杜莎)是一个速度快,支持大规模并行,模块化的爆力破解工具.可以同时对多个主机,用户或密码执行强力测试.Medusa和hy ...
- 使用pdfcrack & crunch暴力破解PDF密码
crunch是密码字典生成器,可以根据指定的字符来生成组合密码字典. pdfcrack是Linux下一个PDF暴力破解密工具,可以使用crunch生成的密码字典来暴力破解PDF文件的密码. 注:没有强 ...
- Linux用root强制踢掉已登录用户;用fail2ban阻止ssh暴力破解root密码
Linux用root强制踢掉已登录用户 首先使用w命令查看所有在线用户: [root@VM_152_184_centos /]# w 20:50:14 up 9 days, 5:58, 3 use ...
- Odoo14 防暴力破解登录密码
1 # Odoo14 防暴力破解登录密码 2 # 主要工具:redis 3 # 实现思路:限制每个用户24小时内登录失败次数.连续超过5次失败后,需要等待一定时间后才能再次尝试登录 4 # 配置:在你 ...
随机推荐
- 重构rbd镜像的元数据
这个已经很久之前已经实践成功了,现在正好有时间就来写一写,目前并没有在其他地方有类似的分享,虽然我们自己的业务并没有涉及到云计算的场景,之前还是对rbd镜像这一块做了一些基本的了解,因为一直比较关注故 ...
- RTSP服务端开发概述
一 概述 RTSP(Real Time Streaming Protocol),RFC2326,实时音视频流传输协议,是TCP/IP协议体系中的一个应用层协议.该协议定义了一对多应用程序如何有效地通过 ...
- SpringCloud Alibaba+New搭建企业级开发框架(三):创建New工程
1.创建父工程:File > New > Project...,选择Maven,Create from archetype不要勾选,点击Next进入下一步,填写工程信息. image. ...
- nginx 负载均衡设置
upstream lucky5{ server 127.0.0.1:3000 weight=10; server 127.0.0.1:3001 weight=5; } server{ location ...
- MathType总结编辑括号的类型(下)
在数学中,所涉及到的公式总是会有各种各样的情况,对于括号这些都是最常见的了.在最开始的四则基本运算中我们学会了使用括号,而随着学习的不断深入,所涉及到的符号与公式都越来越多,对于括号的类型也是使用得非 ...
- MathType颜色设置的技巧
MathType功能非常强大,在编辑公式时使用非常方便.运用MathType不仅可以改变公式的字体和字号,也可以改变公式字体颜色,MathType颜色设置还是有一套技术的,下面我们就一起来看看公式编辑 ...
- ABBYY FineReader 15 如何为PDF文档添加页眉页脚
页眉.页脚是文档页面顶部或底部重复出现的文本信息.很多用户会习惯在文档页面的顶部与底部区域添加页眉.页脚来展现页码.文档标题.作者姓名.品牌名称等附加信息.而ABBYY FineReader 15(W ...
- JUC并发工具包之CountDownLatch
1.介绍 本文将介绍CountDownLatch并给出实践中的几个例子,通过使用CountDownLatch我们可以让一个线程阻塞直到其他一个或多个线程执行完成. A synchronization ...
- hashmap(有空可以看看算法这本书中对于这部分的实现,很有道理)
//转载:https://baijiahao.baidu.com/s?id=1618550070727689060&wfr=spider&for=pc 1.为什么用HashMap? H ...
- Win搭建JAVA环境
一:下载JDK 下载链接:https://www.oracle.com/java/technologies/javase-downloads.html 选择你的系统环境进行下载 二:安装JDK 直接运 ...