解压文件(选自python绝技)

    破解zip文件需要用到python中的zipfile库,实例化ZipFile类,ZipFile类是用来创建和读取zip文件的,调用其extractall()方法。

extractall([path[,member[,path[,pwd]]])

  • path:解压缩的目录
  • member:需要解压缩的文件列表
  • pwd:当zip文件有密码是需要该选项

看下面实例:

>>> import zipfile
>>> zipfile = zipfile.ZipFile(r’D:\pycharm_obj\abc.zip’)
>>> zipfile.extractall(‘1234’)

运行以后显示密码不正确,查看以后发现是一个字符一个字符读取,但我看资料大多都这样写不知道怎么回事,应该是版本有点变化了,我的版本是3.6。

最后附上一个简单的小破解程序,对原书的做了一些小修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import zipfile
from threading import Thread

#定义一个破解的方法
def extgractfile(zfile, password):
try:
zfile.extractall(pwd=password.encode())
print(password+"++++++++++++++++++++++++++++++")
except Exception as e:
pass
return password

def main(k):
zfile = zipfile.ZipFile(r'abc.zip')
passfile = open(r'dictionary.txt')

list = []
for line in passfile.readline():
pas = line.strip('\n')
list.append(pas)
#没办法一个一个读取,只能自己拼接密码了
for i in range(len(list)):
#拼接到最后一个字符就退出
if (i + k > len(list)):
return
pasword ="".join(list[i:i+k])
print(pasword,len(pasword))
t = Thread(target=extgractfile,args=(zfile, pasword))
t.start()
if __name__ == '__main__':
main(4)
#可以解压传统压缩模式,默认模式不行\
#加入了一个几位数密码的判读,这个不成熟,应该是某个范围的判断才更好一点

版权声明:本文为博主原创,如若转载请标明出处https://dword.top/解压文件-选自python绝技.html

-------------end-------------
0%