利用Python暴力破解zip文件口令的方法详解


Posted in Python onDecember 21, 2017

前言

通过Python内置的zipfile模块实现对zip文件的解压,加点料完成口令破解

zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。

比如要读取一个Python zipfile 模块,这里假设filename是一个文件的路径:

import zipfile 
z = zipfile.ZipFile(filename, 'r') 
for i in z.infolist(): 
print i.file_size, i.header_offset

这里使用了z.infolist(), 它返回的就是压缩包内所有文件的信息,就是一个ZipInfo的列表。一个ZipInfo对象中包含了压缩包内一个文件的信息,其中比较常用的是 filename, file_size, header_offset, 分别为文件名,文件大小,文件数据在压缩包中的偏移。

准备阶段

首先你需要一个压缩文件,并且给它加上密码,样子长成这样

利用Python暴力破解zip文件口令的方法详解

利用Python暴力破解zip文件口令的方法详解

然后你就成功Get了一个自带密码的压缩文件,好了,这就结束了

暴力破解

首先我们先知道下什么是暴力破解,其实简单粗暴点来说,就是通过轮循的方式比对,我们一定都知道MD5加密,那么MD5是不可逆的,那网上那些所谓的MD5解密的网站是怎么做到的,其实也是暴力破解的方式。

举个栗子,你通过MD5加密了一段字符串 str="abc" 加密后的结果为 "3cd24fb0d6963f7d" 这么一长串别人肯定看不懂,MD5解密网站怎么做的,他们自己没事干的时候开始瞎试,把aa/cc/bb/abc 啥的都开始用MD5加密一遍,存到自己的数据库里,当你去查询的时候,他们会根据你提供的 "3cd24fb0d6963f7d" 在数据库里面比对,如果巧合的话就能找不到,大部分情况你的加密字符串稍微复杂点都找不到,这就是所谓的MD5解密,也就是暴力破解了

上代码

import zipfile #导入模块,它是做压缩和解压缩的
password="123" #我们设定的口令
zfile = zipfile.ZipFile("test.zip") #要解压缩的压缩包
zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
#进行解压缩操作,path为输出的路径

我们运行一下上面的代码(当然你的加密口令要为123),会发现在桌面上已经把test.zip解压出来了,完美ending,不对还差一个暴力破解呢,自己知道密码还要破解啥有用,别着急,继续往下看

import zipfile 
zfile = zipfile.ZipFile("test.zip")
passFile=open('pwd.txt') #读取你设定的密码文件
for line in passFile.readlines():
  try:
    password = line.strip('\n')
    zfile.extractall(path='C:\\Users\\Administrator\\Desktop\\', members=zfile.namelist(), pwd=password.encode('utf-8'))
    break
  except:
    print("又错了")

pwd.txt里面内容如下

1223
abc
aaa
123

好了,这就完成了zip文件口令的暴力破解,其实只是很巧妙的利用了try except异常机制,当解压正常的时候就正常密码正常,解压失败会报出异常,动手试试

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
Python实现基于二叉树存储结构的堆排序算法示例
Dec 08 Python
用python与文件进行交互的方法
Mar 01 Python
django 发送手机验证码的示例代码
Apr 25 Python
Django实现分页功能
Jul 02 Python
示例详解Python3 or Python2 两者之间的差异
Aug 23 Python
python模块导入的细节详解
Dec 10 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
Nov 22 Python
Python如何省略括号方法详解
Mar 21 Python
Python sklearn分类决策树方法详解
Sep 23 Python
Python人脸识别初探
Dec 21 #Python
python中判断文件编码的chardet(实例讲解)
Dec 21 #Python
python 设置文件编码格式的实现方法
Dec 21 #Python
Python+OpenCV人脸检测原理及示例详解
Oct 19 #Python
Python 查看文件的编码格式方法
Dec 21 #Python
python利用OpenCV2实现人脸检测
Apr 16 #Python
Python判断文件和字符串编码类型的实例
Dec 21 #Python
You might like
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
Jquery EasyUI实现treegrid上显示checkbox并取选定值的方法
2016/04/29 Javascript
浅谈jQuery效果函数
2016/09/16 Javascript
jquery实现手机端单店铺购物车结算删除功能
2017/02/22 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
2017/12/22 Javascript
浅谈实现vue2.0响应式的基本思路
2018/02/13 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
使用Vue做一个简单的todo应用的三种方式的示例代码
2018/10/20 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
2019/03/22 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
2020/02/15 Javascript
一行JavaScript代码如何实现瀑布流布局
2020/12/11 Javascript
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
使用Python的Zato发送AMQP消息的教程
2015/04/16 Python
你所不知道的Python奇技淫巧13招【实用】
2016/12/14 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
2018/04/23 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
Python2和Python3之间的str处理方式导致乱码的讲解
2019/01/03 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
python3实现的zip格式压缩文件夹操作示例
2019/08/17 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
法国体育用品商店:GO Sport
2019/10/23 全球购物
学生处主任岗位职责
2013/12/01 职场文书
公司人力资源的自我评价
2014/01/02 职场文书
自行车广告词大全
2014/03/21 职场文书
工作年限证明模板
2015/06/15 职场文书
2016领导干部廉洁自律心得体会
2016/01/13 职场文书
对象析构函数__del__在Python中何时使用
2022/03/22 Python