利用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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
Nov 18 Python
Python中的高级数据结构详解
Mar 27 Python
Python简单生成8位随机密码的方法
May 24 Python
Python zip()函数用法实例分析
Mar 17 Python
python定时关机小脚本
Jun 20 Python
Python3实现从排序数组中删除重复项算法分析
Apr 03 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
Jul 11 Python
妙用itchat! python实现久坐提醒功能
Nov 25 Python
Python实现的北京积分落户数据分析示例
Mar 27 Python
解决python DataFrame 打印结果不换行问题
Apr 09 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
php实现无限级分类(递归方法)
2015/08/06 PHP
jQuery学习总结之元素的相对定位和选择器(持续更新)
2011/04/26 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
Knockout text绑定DOM的使用方法
2013/11/15 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
利用iscroll4实现轮播图效果实例代码
2017/01/11 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
AngularJS之自定义服务详解(factory、service、provider)
2017/04/14 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
vue canvas绘制矩形并解决由clearRec带来的闪屏问题
2019/09/02 Javascript
解决layui的input独占一行的问题
2019/09/10 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[01:33]完美世界DOTA2联赛PWL S3 集锦第二期
2020/12/21 DOTA
python实现360的字符显示界面
2014/02/21 Python
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
python3.4下django集成使用xadmin后台的方法
2017/08/15 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
用Python爬取QQ音乐评论并制成词云图的实例
2019/08/24 Python
python实现输入三角形边长自动作图求面积案例
2020/04/12 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
Keras—embedding嵌入层的用法详解
2020/06/10 Python
一篇文章搞懂python的转义字符及用法
2020/09/03 Python
django inspectdb 操作已有数据库数据的使用步骤
2021/02/07 Python
英国可持续奢侈品包包品牌:Elvis & Kresse
2018/08/05 全球购物
单位创先争优活动方案
2014/01/26 职场文书
运动会观后感
2015/06/09 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
浅谈Node的内存泄露问题
2022/05/06 NodeJs