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 14 Python
python单例模式实例分析
Apr 08 Python
Python Requests 基础入门
Apr 07 Python
python简单实现获取当前时间
Aug 27 Python
python执行使用shell命令方法分享
Nov 08 Python
python使用Matplotlib画条形图
Mar 25 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
python爬虫豆瓣网的模拟登录实现
Aug 21 Python
python中id函数运行方式
Jul 03 Python
Python单元测试及unittest框架用法实例解析
Jul 09 Python
通过代码实例了解Python sys模块
Sep 14 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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
php htmlspecialchars加强版
2010/02/16 PHP
PHP Memcached + APC + 文件缓存封装实现代码
2010/03/11 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
php生成图形验证码几种方法小结
2013/08/15 PHP
php 类自动载入的方法
2015/06/03 PHP
php 中的closure用法详解
2017/06/12 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
学习YUI.Ext 第二天
2007/03/10 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
js中onload与onunload的使用示例
2013/08/25 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
更快的异步执行(setTimeout多浏览器)
2014/08/12 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
js获得当前系统日期时间的方法
2015/05/06 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
js HTML5手机刮刮乐代码
2020/09/29 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
Vue-cli3项目配置Vue.config.js实战记录
2018/07/29 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
2019/03/04 Javascript
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
JavaScript实现京东放大镜效果
2019/12/03 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[41:17]完美世界DOTA2联赛PWL S3 access vs CPG 第二场 12.13
2020/12/17 DOTA
详解Django中的ifequal和ifnotequal标签使用
2015/07/16 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
如何给Python代码进行加密
2020/01/10 Python
在python tkinter界面中添加按钮的实例
2020/03/04 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
2021/01/01 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
家长对学生的评语
2014/04/18 职场文书
商超业务员岗位职责
2015/02/13 职场文书
搭建Yolov5服务器
2022/04/30 Servers