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

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

原理

主要是利用python里自带的zipfile库中的extractall函数来实现的,简单导入zipfile之后,实例化一个ZipFile类。利用extractall()来解压这个文件,并在参数pwd上填入正确密码
简简单单利用字典破解zip文件口令
这时我们发现执行脚本之后,fate.zip会被正确解压,而填入错误密码则会入下图一样报错
简简单单利用字典破解zip文件口令因此我们可以利用因口令不正确而抛出的异常来测试字典文件中是否有zip文件的密码,并利用try expect来处理异常信息。

代码

假定zip文件密码为fate,pwd.txt为字典文件

import zipfile
zFile = zipfile.ZipFile(r"D:\python\fate.zip")
passFile = open(r"D:\python\pwd.txt")
for line in passFile.readlines():
password = line.strip('\n')
# noinspection PyBroadException
try:
zFile.extractall(pwd=password.encode("utf=8"))
print("password="+password)
except Exception as e:
pass

需要注意的是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__"使函数只在当前模块运行,当被导入时不运行

结语

以上就是利用字典破解zip文件的全部内容,如有错误,望海涵,有问题欢迎在评论区讨论交流或者私信我。

原创:https://www.panoramacn.com
源码网提供WordPress源码,帝国CMS源码discuz源码,微信小程序,小说源码,杰奇源码,thinkphp源码,ecshop模板源码,微擎模板源码,dede源码,织梦源码等。

专业搭建小说网站,小说程序,杰奇系列,微信小说系列,app系列小说

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

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如果您下载了该资源行为将被视为对《免责声明》全部内容的认可-> 联系客服 投诉资源
www.panoramacn.com资源全部来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事物联系邮箱:2640602276@qq.com
未经允许不得转载:书荒源码源码网每日更新网站源码模板! » 简简单单利用字典破解zip文件口令
关注我们小说电影免费看
关注我们,获取更多的全网素材资源,有趣有料!
120000+人已关注
分享到:
赞(0) 打赏

评论抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

您的打赏就是我分享的动力!

支付宝扫一扫打赏

微信扫一扫打赏