ZIP文件规范加密标头

问题描述

我正在阅读zip文件specification,但没有解释关于存档中文件的加密头的结构。标题顺序如下:

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

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

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

我正在搜索此加密头的结构,因为此规范未对其进行解释。有人知道这是怎么回事吗?

解决方法

6.1传统的PKWARE解密

...

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

...

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

,

RAR 5.0 archive formathttps://www.rarlab.com/technote.htm上看起来很不错

您可能会发现它对项目sharpcompress有帮助: https://github.com/adamhathcock/sharpcompress/tree/master/src/SharpCompress/Common/Zip