快捷搜索:  汽车  科技

如何通过python解压文件包(Python轻松实现破译zip压缩包)

如何通过python解压文件包(Python轻松实现破译zip压缩包)如此,便可按你的要求得到密码的Python 生成器。我们知道,生成器是不占用内存的。比如,纯数字的“050825”,你就传入如下的参数:可以从依次遍历“000000”到“999999”,把所有的结果保存到txt文件。这样的缺点就是比较死板,只能是6位数字,另外就是比较占内存。于是,有个大神写了个“字典生成器”,你需要做的是传入两个参数“字典的组成元素”和“密码的长度列表”

前言

今天我们就利用python脚本实现破译Zip压缩包。直接开整~

效果展示

如何通过python解压文件包(Python轻松实现破译zip压缩包)(1)

过程如下:

如何通过python解压文件包(Python轻松实现破译zip压缩包)(2)

  1. 建立密码字典(常用密码)
  2. 尝试用每一个密码,来解压文件
  3. 解压成功,跳出循环

密码字典

如何通过python解压文件包(Python轻松实现破译zip压缩包)(3)

比如,现在一个纯数字的六位密码“050825”

可以从依次遍历“000000”到“999999”,把所有的结果保存到txt文件。

这样的缺点就是比较死板,只能是6位数字,另外就是比较占内存。

于是,有个大神写了个“字典生成器”,你需要做的是传入两个参数“字典的组成元素”和“密码的长度列表”

比如,纯数字的“050825”,你就传入如下的参数:

  • [0 1 2 3 4 5 6 7 8 9],数字就这9个
  • [6],密码的长度

如此,便可按你的要求得到密码的Python 生成器。我们知道,生成器是不占用内存的。

如果数字不过瘾,比如有的密码是字符串。可以考虑在第一个参数中,加入“a-z”和“A-Z”

zipfile解压文件

如何通过python解压文件包(Python轻松实现破译zip压缩包)(4)

zipfile模块是python自带的,用于对zip文件的读、写、追加、解压操作等。

“解压”主要是用到ZipFile对象的extractall()方法

extractall(path=None members=None pwd=None)方法主要有三个参数。

我们来看一下每个参数的含义:

  • path 指定解压后文件的存储位置
  • members(可选)指定Zip文件中要解压的文件,这个文件名称必须是通过namelist()方法返回列表的子集
  • pwd 指定Zip文件的解压密码(编码“utf-8”)

源码:

import zipfile try: with zipfile.ZipFile('test.zip') as zFile: # 创建ZipFile对象 # 解压文件 zFile.extractall(path='./' pwd=b'1234') print('解压成功!')except: print('解压失败')进度条可视化

如何通过python解压文件包(Python轻松实现破译zip压缩包)(5)

上次的进度条,这次派上用场了,关于进度条,本程序使用 tqdm扩展库,可以参考下面的链接:用python 制作可视化进度条

代码中的tqdm有两个参数:

1、密码迭代器

2、密码总个数

for pwd in tqdm(chain.from_iterable(all_passwd(dictionaries maxlen) for maxlen in lengths) total=total): if extract(zfile pwd): # 记得extract函数返回的是bool类型的哦 break

这是PY的结果:

5%|▌ | 50691/1000000 [00:04<01:23 11389.24it/s] Password is: 050825 bingo

4s结束战斗...

如何通过python解压文件包(Python轻松实现破译zip压缩包)(6)

文章到这里就结束了,感谢你的观看,Python实用脚本系列,下篇文章分享批量下载百度图片

为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

如何通过python解压文件包(Python轻松实现破译zip压缩包)(7)

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)、

⑤ Python学习路线图(告别不入流的学习)

总结

文章到这里就结束了,感谢你的观看,为了感谢读者们,我想把我最近收藏的一些编程干货分享给大家,回馈每一个读者,希望能帮到你们。

需要我本篇的完整代码或者其他的收藏的一些Python编程干货可以私信我(转发此文私信发我“zip”

如何通过python解压文件包(Python轻松实现破译zip压缩包)(8)

猜您喜欢: