首页 > 解决方案 > ZIP 文件规范加密标头

问题描述

我正在阅读 zip 文件规范,但没有解释存档中文件的加密标头的结构。标题顺序是这样的:

[本地文件头 1] [加密头 1] [文件数据 1] [数据描述符 1]

在本地文件头之后,规范说明了以下内容,同时跳过了加密头部分:

应紧跟文件的本地标头之后放置文件的压缩或存储数据。如果文件被加密,文件的加密头应该放在本地头之后和文件数据之前。[本地文件头][加密头][文件数据][数据描述符]系列对 .ZIP 存档中的每个文件重复。

我正在寻找这个加密头的结构,因为这个规范没有解释它。有谁知道这是如何工作的?

标签: filezipfile-format

解决方案


6.1 传统PKWARE解密

...

6.1.3 每个加密文件都有一个额外的 12 字节存储在定义该文件加密头的数据区域的开头。加密标头最初设置为随机值,然后使用三个 32 位密钥对其自身进行加密。使用提供的加密密码初始化密钥值。加密每个字节后,然后使用伪随机数生成技术结合 PKZIP 中使用的相同 CRC-32 算法更新密钥,并在本文档的其他地方进行描述。

...

解密标头的规范取决于使用的加密算法。有一个传统的 PKWARE 加密(标准),但这已经过时,因此应该使用自定义加密/解密。


推荐阅读