前几天在一本书上看到一篇可以利用字典破解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压缩解压缩zip文件及破解zip文件密码的方法利用Python暴力破解zip文件口令的方法详解python破解zip加密文件的方法如何使用Python破解ZIP或RAR压缩文件密码详解python破解zip文件密码的方法python编写暴力破解zip文档程序的实例讲解Python脚本破解压缩文件口令实例教程(zipfile)