zip文件解压失败怎么办(文件解压操作流程)

Python暴力破解ZIP文件密码

通过Python内置的zipfile模块实现对zip文件的解压,加点料完成口令破解

zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个class就可以了。ZipFile是主要的类,用来创建和读取zip文件而ZipInfo是存储的zip文件的每个文件的信息的。

比如要读取一个Python zipfile 模块,这里假设filename是一个文件的路径:

import zipfile

z = zipfile.ZipFile(filename, ‘r’)

for i in z.infolist():

print i.file_size, i.header_offset

1

2

3

4

这里使用了z.infolist(), 它返回的就是压缩包内所有文件的信息,就是一个ZipInfo的列表。一个ZipInfo对象中包含了压缩包内一个文件的信息,其中比较常用的是 filename, file_size, header_offset, 分别为文件名,文件大小,文件数据在压缩包中的偏移。

假设我们有一个已知密码为123的ZIP文件

import zipfile #导入模块,它是做压缩和解压缩的

password=”123″

zfile = zipfile.ZipFile(“test.zip”) #要解压缩的压缩包

zfile.extractall(path=’C:\\Users\\Administrator\\Desktop\\’, members=zfile.namelist(), pwd=password.encode(‘utf-8’))

#进行解压缩操作,path为输出的路径

1

2

3

4

5

测试成功,下面进行暴力破解

#此代码适合于破解密码为0-999999的密码,数字区间可以自己设置

import time

import zipfile

from tqdm import tqdm

def zipcrackl(start,end):

a = time.time()

zfile = zipfile.ZipFile(‘
D:/BaiduNetdiskDownload/16.zip’)#把要破解的zip的文件名替换ZipFile里面的参数

for i in tqdm(range(start,end)):

try:

zfile.extractall(path=’C:\\Users\\Administrator\\Desktop\\’,pwd=str(i))

print(u’密码是:’+str(i))

print(u’破解时间是:’+str(time.time()-a)+’s’)#破解时间减去开始那个时刻的时间,得到的就是破解这个压缩文件的时间

break

except Exception as e:

#print(e)

pass

if __name__ == ‘__main__’:

zipcrackl(0,999999)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

如果密码中还有其他非数字字符,考虑使用破解字典的方法。

以下代码中pwd为自己设置的密码字典。

import zipfile

zfile = zipfile.ZipFile(“test.zip”)

passFile=open(‘pwd.txt’) #读取你设定的密码文件

for line in passFile.readlines():

try:

password = line.strip(‘\n’)

zfile.extractall(path=’C:\\Users\\Administrator\\Desktop\\’, members=zfile.namelist(), pwd=password.encode(‘utf-8’))

break

except:

print(“又错了”)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至624739273@qq.com举报,一经查实,本站将立刻删除。
Like (0)
柳的头像

相关推荐

发表回复

Please Login to Comment
微信
微信
SHARE
TOP
要想花得少,就用购宝。话费电费9折起,官方公众号:购宝