Zlib.error:解压缩数据时出现错误-3:设置了无效的代码长度(python)

时间:2019-07-14 12:59:34

标签: python zip zipfile

大家好,我有一个关于使用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')

任何帮助将不胜感激,在此先感谢!

0 个答案:

没有答案