pkzip APPNOTE 中的“幻数”(0xdebb20e3) 是什么?

问题描述 投票:0回答:1

APPNOTE.txt的第4.4.7节(CRC-32)中您可以找到

CRC 的“魔数”是 0xdebb20e3。

但是,CRC-32 的正则多项式(0x04C11DB7)可以正常工作。位反映为0xEDB88320。我不知道 0xdebb20e3 是什么。

我尝试反射和反转 0xdebb20e3 的位,将 LE → BE 转换,反之亦然,但没有得到 0x04c11db7。 0xc704dd7b(反转)、0x38fb2284(反转+反转)、0x2144df1c(反转);甚至不相似。

zip bit-manipulation crc32
1个回答
0
投票

这是原始消息的 CRC-32 的补充,任何原始消息,其 CRC-32 都以小端顺序附加。

因此,如果我获取由 ASCII 数字“123456789”组成的九字节消息,我会得到

0xcbf43926
。如果我获取 13 字节消息“123456789”,后跟四个字节
0x26 0x39 0xf4 0xcb
,我会得到
0x2144df1c
。其补语是
0xdebb20e3

对于任何给定的 CRC 定义来说,这是一个常量,称为“残差”。您可以在 CRC 的描述中找到它这里

width=32 poly=0x04c11db7 init=0xffffffff refin=true refout=true xorout=0xffffffff check=0xcbf43926 residue=0xdebb20e3 name="CRC-32/ISO-HDLC"
© www.soinside.com 2019 - 2024. All rights reserved.