You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

测试Zip文件密码时触发zlib.error:无效块类型问题排查

问题原因与解决方案

这个错误的核心原因是:某个候选密码通过了Zip的初始密码校验,但实际并非正确密码。Zip的传统加密(ZipCrypto)验证机制很弱,只校验文件头的CRC值,不验证整个加密流,所以偶尔会出现错误密码“蒙混过关”的情况,此时后续解压数据就会因为密钥不对,导致zlib抛出解压错误。

修复代码的关键步骤

  1. 新增zlib.error异常捕获
    扩展异常处理逻辑,捕获zlib.error,遇到时直接跳过当前密码,继续尝试下一个:

    import zipfile
    import zlib
    
    found = False
    zipFilename = "你的压缩文件路径.zip"
    # 假设your_wordlist是你的密码候选列表
    for word in your_wordlist:
        password = bytes(word, 'utf-8')
        print('Trying ' + word)
        zip = zipfile.ZipFile(zipFilename)
        zip.setpassword(password)
        try:
            bad_file = zip.testzip() # if anything returned without error then password was correct
            print('Password is ' + word)
            found = True
            exit()
        except RuntimeError as e:
            if e.args[0].startswith('Bad password for file'):
                continue
            raise e  # throw any other exception to print on console
        except zlib.error:
            # 错误密码通过初始校验,解压失败,直接跳过
            continue
    
  2. 优化ZipFile的打开方式
    每次循环重新打开Zip文件会浪费IO资源,建议把打开操作移到循环外:

    import zipfile
    import zlib
    
    found = False
    zipFilename = "你的压缩文件路径.zip"
    
    # 循环外仅打开一次Zip文件
    with zipfile.ZipFile(zipFilename) as zip_ref:
        for word in your_wordlist:
            password = bytes(word, 'utf-8')
            print('Trying ' + word)
            zip_ref.setpassword(password)
            try:
                bad_file = zip_ref.testzip()
                print('Password is ' + word)
                found = True
                break
            except RuntimeError as e:
                if e.args[0].startswith('Bad password for file'):
                    continue
                raise e
            except zlib.error:
                continue
    
  3. 排查文件本身问题
    如果异常频繁出现,建议用7-Zip等工具打开Zip文件,确认:

    • 文件是否损坏
    • 是否使用了Python标准库zipfile不支持的加密算法(比如AES加密,这种情况需要用第三方库如pyzipper)

内容的提问来源于stack exchange,提问作者Tony Klieber

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 11:59:54