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

是否存在带数据描述符且采用ZIP弱加密机制的密码保护压缩包?

结论

存在符合要求的合法ZIP文件,这种组合完全符合PKWARE发布的ZIP格式规范,且在实际生产环境中广泛存在。

规范依据

  • Zip传统弱加密(即ZipCrypto加密)是ZIP规范原生支持的加密机制,和数据描述符特性无互斥限制。
  • 数据描述符的设计目标就是适配流式生成ZIP的场景:生成压缩包时无需提前计算CRC、压缩后大小、未压缩大小,这三个字段会存储在对应文件的压缩数据末尾,而非本地文件头中。
  • 常见的动态加密ZIP生成场景(比如web服务实时导出加密压缩包、压缩工具选择流式压缩+加密选项)都会生成这类结构的文件。

流式解密开发适配方案

你遇到的无法提前获取压缩大小的问题,可以通过调整流式处理逻辑解决:

  • ZipCrypto加密的数据流支持逐块解密,解密逻辑仅和前12字节加密头、以及逐字节生成的密钥流相关,不需要提前获知完整压缩数据的大小。
  • 调整压缩数据结束位置的识别逻辑,不依赖本地文件头的大小字段:
    • 逐块解密压缩数据的同时,维护一个4字节的滑动窗口,匹配数据描述符的固定签名0x08074b50。
    • 匹配到签名后,读取后续12字节(依次为CRC32、压缩大小、未压缩大小,各占4字节),将解密过程中计算得到的CRC和该字段校验一致,即可确认压缩数据段结束。

Python实现注意事项

  • Python标准库zipfile模块默认优先读取本地文件头的大小字段,无法直接处理这类带数据描述符的加密ZIP,需要自行实现底层的结构解析逻辑。
  • ZipCrypto的加解密算法逻辑公开,逐块处理的性能完全满足流式解压的需求。

内容的提问来源于stack exchange,提问作者Michal Charemza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 11:03:03