前几天在一本书上看到一篇可以利用字典破解zip文件密码的文章,觉得比较有意思于是研究了一番,在这里分享一下
很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
原理
主要是利用python里自带的zipfile库中的extractall函数来实现的,简单导入zipfile之后,实例化一个ZipFile类。利用extractall()来解压这个文件,并在参数pwd上填入正确密码
这时我们发现执行脚本之后,fate.zip会被正确解压,而填入错误密码则会入下图一样报错
因此我们可以利用因口令不正确而抛出的异常来测试字典文件中是否有zip文件的密码,并利用来处理异常信息。
代码
假定zip文件密码为fate,pwd.txt为字典文件
需要注意的是python3以及不支持自动ascii码了,在extractall的pwd参数后需手动添加编码类型,则是为了防止PyCharm报错
提高性能
将程序模块化后,在利用多线程处理可以提高程序性能,可以利用Thread来实现多线程处理
利用使函数只在当前模块运行,当被导入时不运行