大家好,我有一个关于使用python破解zip文件密码的问题。这不是不道德或非法的破解项目,而是学校的任务。
我已经成功破解了zip文件,但是很奇怪的是,它只能破解2位密码,如“ 00”,如果破解超过2位密码,如3位密码,如“ 000”,将显示:
zlib.error: Error -3 while decompressing data: invalid code lengths set
我尝试了两个zip文件,其中一个是“ 00”密码,另一个是“ 000”密码。我不明白这是什么问题,我的代码有什么问题吗?这是我的代码:
import itertools
import os
import zipfile
from itertools import product
def password_generator(min_length=1, max_length=10, chars='0123456789'):
for i in range(min_length, max_length):
for password in itertools.product(chars, repeat=i):
yield ''.join(password)
is_successful_extraction = False
for password in password_generator():
try:
z = zipfile.ZipFile(r"C:/Users/edison/Desktop/zip file cracker/input/a2.zip", 'r')
z.extractall(r"C:/Users/edison/Desktop/zip file cracker/output", pwd=password.encode())
z.close
print('[+] Extracted - password: {}'.format(password))
is_successful_extraction = True
break
except RuntimeError:
print('[-] Failure to extract - password: {}'.format(password))
if is_successful_extraction:
print('[+] Successful extraction')
else:
print('[!] No extraction complete')
任何帮助将不胜感激,在此先感谢!