python简单利用字典破解zip文件口令


Posted in Python onSeptember 07, 2020

前几天在一本书上看到一篇可以利用字典破解zip文件密码的文章,觉得比较有意思于是研究了一番,在这里分享一下

原理

主要是利用python里自带的zipfile库中的extractall函数来实现的,简单导入zipfile之后,实例化一个ZipFile类。利用extractall()来解压这个文件,并在参数pwd上填入正确密码

python简单利用字典破解zip文件口令

这时我们发现执行脚本之后,fate.zip会被正确解压,而填入错误密码则会入下图一样报错

python简单利用字典破解zip文件口令因此

我们可以利用因口令不正确而抛出的异常来测试字典文件中是否有zip文件的密码,并利用try expect来处理异常信息。

代码

假定zip文件密码为fate,pwd.txt为字典文件需要注意的是python3以及不支持自动ascii码了,在extractall的pwd参数后需手动添加编码类型,# noinspection PyBroadException则是为了防止PyCharm报错

提高性能

将程序模块化后,在利用多线程处理可以提高程序性能,可以利用Thread来实现多线程处理

import zipfile
from threading import Thread


def extractfile(zFile,password):
 # noinspection PyBroadException
 try:
 zFile.extractall(pwd=password.encode("utf=8"))
 print("password="+password)
 except Exception as e:
 pass


def main():
 zFile = zipfile.ZipFile(r"D:\python\fate.zip")
 passFile = open(r"D:\python\pwd.txt")
 for line in passFile.readlines():
 password = line.strip('\n')
 t = Thread(target=extractfile(zFile , password))
 t.start()


if __name__ == "__main__":
 main()

利用if __name__ == "__main__"使函数只在当前模块运行,当被导入时不运行

结语

到此这篇关于python简单利用字典破解zip文件口令的文章就介绍到这了,更多相关python字典破解zip文件口令内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python实现根据月份和日期得到星座的方法
Mar 27 Python
Python 爬虫模拟登陆知乎
Sep 23 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
python 时间信息“2018-02-04 18:23:35“ 解析成字典形式的结果代码详解
Apr 19 Python
详解python3中tkinter知识点
Jun 21 Python
Python列表常见操作详解(获取,增加,删除,修改,排序等)
Feb 18 Python
面向对象学习之pygame坦克大战
Sep 11 Python
Django REST framework 单元测试实例解析
Nov 07 Python
基于Pytorch SSD模型分析
Feb 18 Python
Python实现自动装机功能案例分析
Oct 22 Python
总结Python使用过程中的bug
Jun 18 Python
Python闭包的定义和使用方法
Apr 11 Python
python 如何快速复制序列
Sep 07 #Python
Python2与Python3关于字符串编码处理的差别总结
Sep 07 #Python
python 装饰器的实际作用有哪些
Sep 07 #Python
通俗讲解python 装饰器
Sep 07 #Python
彻底搞懂python 迭代器和生成器
Sep 07 #Python
python如何设置静态变量
Sep 07 #Python
获取CSDN文章内容并转换为markdown文本的python
Sep 06 #Python
You might like
收音机怀古---春雷3P7图片欣赏
2021/03/02 无线电
咖啡磨器 如何选购一台适合家用的意式磨豆机
2021/03/05 新手入门
PHP.MVC的模板标签系统(五)
2006/09/05 PHP
PHP定时自动生成静态HTML的实现代码
2010/06/20 PHP
关于尾递归的使用详解
2013/05/02 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
php对xml文件的增删改查操作实现方法分析
2017/05/19 PHP
PHP工厂模式的日常使用
2019/03/20 PHP
javascript的事件描述
2006/09/08 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
利用jQuary实现文字浮动提示效果示例代码
2013/12/26 Javascript
jQuery基于当前元素进行下一步的遍历
2014/05/20 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
webstrom Debug 调试vue项目的方法步骤
2018/07/17 Javascript
详解React native fetch遇到的坑
2018/08/30 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
微信小程序本地存储实现每日签到、连续签到功能
2019/10/09 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
c++生成dll使用python调用dll的方法
2014/01/20 Python
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python第三方库face_recognition在windows上的安装过程
2019/05/03 Python
python numpy 反转 reverse示例
2019/12/04 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
2020/06/28 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
CSS3 毛玻璃效果
2019/08/14 HTML / CSS
临床医学应届生求职信
2013/11/06 职场文书
宿舍打麻将检讨书
2014/01/24 职场文书
公司任命书模板
2014/06/06 职场文书
大国崛起英国观后感
2015/06/02 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书
【海涛dota解说】一房久违的影魔魂守二连发
2022/04/01 DOTA