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

 更新时间:2020年09月07日 10:27:08   作者:极天の流星雨  
这篇文章主要给大家介绍了关于python简单利用字典破解zip文件口令的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

原理

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

在这里插入图片描述

这时我们发现执行脚本之后,fate.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的Twisted框架编写非阻塞程序的代码示例

    使用Python的Twisted框架编写非阻塞程序的代码示例

    Twisted是基于异步模式的开发框架,因而利用Twisted进行非阻塞编程自然也是必会的用法,下面我们就来一起看一下使用Python的Twisted框架编写非阻塞程序的代码示例:
    2016-05-05
  • python密码学一次性密码的实现

    python密码学一次性密码的实现

    这篇文章主要为大家介绍了python密码学一次性密码的实现,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python实现批量修改文件时间属性

    Python实现批量修改文件时间属性

    我们有时候需要修改文件的“修改时间” 、 “访问时间”,“创建时间” ,此时如果使用Python批量实现应该会方便很多,下面小编就来为大家介绍一下具体实现方法吧
    2023-11-11
  • Python NumPy中的随机数及ufuncs函数使用示例详解

    Python NumPy中的随机数及ufuncs函数使用示例详解

    这篇文章主要介绍了Python NumPy中的随机数及ufuncs函数使用,ufunc函数是NumPy中的一种通用函数,它可以对数组中的每个元素进行操作,而不需要使用循环语句,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习吧
    2023-05-05
  • jupyter的安装与使用以及运行卡顿问题及解决

    jupyter的安装与使用以及运行卡顿问题及解决

    这篇文章主要介绍了jupyter的安装与使用以及运行卡顿问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python中@符号的具体使用

    Python中@符号的具体使用

    本文主要介绍了Python中@符号的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • 如何利用Python和matplotlib更改纵横坐标刻度颜色

    如何利用Python和matplotlib更改纵横坐标刻度颜色

    对于图表来说最简单的莫过于作出一个单一函数的图像,下面这篇文章主要给大家介绍了关于如何利用Python和matplotlib更改纵横坐标刻度颜色的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • python实现监控windows服务并自动启动服务示例

    python实现监控windows服务并自动启动服务示例

    这篇文章主要介绍了python实现监控windows服务并自动启动服务示例,需要的朋友可以参考下
    2014-04-04
  • python二进制串转字符串的方法详解

    python二进制串转字符串的方法详解

    这篇文章主要介绍了python二进制串转字符串的方法详解,使用json,可以自动检测编码,但需要注意的是,它返回的是python对象,不一定是字符串,具体是什么对象要视原始内容而定,需要的朋友可以参考下
    2023-11-11
  • Python实现网络端口转发和重定向的方法

    Python实现网络端口转发和重定向的方法

    这篇文章主要介绍了Python实现网络端口转发和重定向的方法,结合实例形式分析了Python基于threading和socket模块实现端口转发与重定向的具体操作技巧,需要的朋友可以参考下
    2016-09-09

最新评论