.ZIP 格式规范中定义的字长

Posted

技术标签:

【中文标题】.ZIP 格式规范中定义的字长【英文标题】:Word Length as defined in the .ZIP format specification 【发布时间】:2012-07-01 08:42:19 【问题描述】:

所以我一直在阅读PKWARE's specification of the .zip file format 并注意到在几个地方他们根据单词(处理器单词,而不是字典单词:-))给出块大小。

现在,按照我的理解,一个字的字节大小是特定于某个处理器系列的。因此,如果一个文件在 i386 上压缩,然后在 x64-86 上解压缩,这两种架构将有不同的单词定义(4 字节与 8 字节),因此会以不同的方式解释块数据。

我在这里遗漏了什么吗?还是 PKWARE 的人只是假设 1 个字 = 4 个字节?这对我来说似乎是最有可能的选择 - 我已经使用十六进制编辑器检查了一些 zip 文件,并且 4 字节的定义适合,但我想要一些确认,因为它不像我有一大堆不同的处理器来测试:)

提前谢谢,如果问题已经存在,很抱歉 - 我确实尝试过搜索,但有点困难,因为“单词”这个词太含糊了(明白我的意思吗?)

【问题讨论】:

在 pkware 的规范中,1 个字 = 32 位。 简短而甜蜜,这就是我需要知道的全部内容。谢谢! 【参考方案1】:

在规范中对 deflate 格式的存储块说“字”的地方,它表示两个字节(按 LSB 顺序)。

对于 zip 解密(不应该使用加密,因为它太弱了),一个词也意味着两个字节。

当它谈到一个通用标志字时,它再次表示两个字节。

【讨论】:

以上是关于.ZIP 格式规范中定义的字长的主要内容,如果未能解决你的问题,请参考以下文章

字长和数据类型

RAM的字长、字宽、字数、位宽等表述

.apk 没有官方格式规范吗?

YUV各种格式的像素占用内存大小计算

YUV各种格式的像素占用内存大小计算

规范外连接 zip 函数