工具破解

前两天在网上下来了一波项目案例,结果全是加密的压缩包,于是去网上找了一个压缩包破解的工具
苦于工具破解太慢,一个压缩包要好久,解压了三个之后就放弃了,准备另寻他法

密码字典

巧的是破解的三个都是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)# 密码对了就不继续下去了breakexcept:# 什么都不做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_pathchild=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)breakexcept 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密码相关推荐

  1. python生成字典暴力破解

    目标:python生成一个字典来暴力破解这样,可爆破验证码等 将print的int型转换成str型结果输出到文件中,比如文件在D:\out.txt: i = 100000 w = open('hell ...

  2. fcrackzip暴力破解zip密码

    安装 brew install fcrackzip 使用 fcrackzip -b -c 'aA1!:' -l 1-5 -u a.zip $ fcrackzip -b -c 'aA1!:' -l 1- ...

  3. hadoop编程:暴力破解ZIP密码

    "云计算技术与应用课程设计"总结报告 背景 互联网发展到今天,许多数据与文件的传输仍然要用到压缩技术.其中最有名的无疑是ZIP压缩文件,是无损压缩的杰出代表. 但是,我们今天在上网 ...

  4. Wifi密码破解1:通过字典(暴力)破解WIFI密码

    简单破解WEP/WPA/WPA2加密的WIFI密码,平台kali-linux 工具:Aircrack-ng 过程很简单:先抓含有正确密码的握手包(客户端连接wifi的时候会互相交换报文),然后从这个抓 ...

  5. 暴力破解zip密码 python

    def zipDecrypt():path1 = "a.zip" # 需要解压的文件路径及地址path2 = "D:\\code\\python\\test" ...

  6. python暴力破解zip密码文件

    原理非常简单,不说了直接上代码 update:说一些注意点,python3.x 下的string不支持bytes编码方式,而python2.x下是支持的.encode(),和decode()方法就是进 ...

  7. python暴力破解Zip文件,就是不讲道理

    本次实验将带领大家用Python的zipfile模块实现Zip文件的暴力破解,涉及的知识点包括:zipfile.argparse的用法等等. 一.实验说明 1. 实验简介 我们在网上好不容易下载到一个 ...

  8. Python黑客入门:暴力破解zip,零基础也可以学会

    照顾没有接触过Python编程的同学,行文可能会有些啰嗦. 废话少说,我们进入正题. 2.1 准备基本材料 在/home/ziptest/目录下,我创建了两个文件,一个test.zip,是一个设置了密 ...

  9. Python黑客入门:暴力破解zip,零基础也可以学会!

    照顾没有接触过Python编程的同学,行文可能会有些啰嗦. 废话少说,我们进入正题. 2.1准备基本材料 在/home/ziptest/目录下,我创建了两个文件,一个test.zip,是一个设置了密码 ...

  10. Python 暴力破解zip文件密码(相对简单的密码)

               Python 暴力破解zip文件密码(相对简单的密码) 密码的使用范围很广,首先,我们要明确密码的作用,其次要明白密码的类型. 密码的作用是进行权限的限制,判断用户的合法性,(不 ...

最新文章

  1. 哪怕你不认可,我还是要为R语言正名
  2. Testing tools
  3. xcode 4.2 如何调试 EXC_BAD_ACCESS
  4. 04JavaScript中函数也是对象
  5. yocto-sumo源码解析(十一): recvfds
  6. PHP高手干货分享:不能不看的50个细节!
  7. 一些比较少用但比较有用的linux命令备忘
  8. 设计费收费标准2002修订_@设计师,2019景观园林设计收费标准,注意查收!
  9. ONGC的完整形式是什么?
  10. php判断数组中的键是否是某个字符串,php判断数组中是否存在指定键(key)的方法...
  11. 微服务升级_SpringCloud Alibaba工作笔记0009---阿里云部署微服务_在内网不同机器上_报错_注册中心找不到对应的机器_遇到java.net.UnknownHostExceptio
  12. 【翻译】WPF应用程序模块化开发快速入门(使用Prism+MEF)【中】
  13. Java编程:栈的应用实例——逆波兰计算器
  14. 01 超级搜索术——信息搜索:全面、快速查找全网你想要的任何信息、情报
  15. 虚拟机VMware workstation安装gho系统详解
  16. 雷电模拟器如何启动某一特定应用 | ldconsole.exe runapp打开雷电内的APP没有任何反应怎么办
  17. Git之删除本地仓库
  18. 影响网站收录量有哪些因素
  19. 使用devstack安装magnum
  20. 【Unity3D入门教程】Unity3D界面介绍及游戏对象基本操作

热门文章

  1. 最全微信小程序源码项目开发代码合集
  2. 下载编译goldfish内核
  3. 架设好传奇登录器显示无法连接服务器,完美登录器使用常见问题解决办法
  4. 我成功通过PMP考试的经验与体会
  5. python核心编程第三版课后习题一
  6. mysql是应用软件还是系统软件_数据库管理系统属于应用软件吗?
  7. Android应用开发进阶,2021Android最新大厂面试真题
  8. Python出租车GPS数据处理(TransBigData)
  9. 都2021年了,不会还有人连深度学习都不了解吧(七)- 评估指标篇
  10. gjb150.16a-2009振动试验标准及介绍