CRC32C 的测试向量

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

我正在为 CRC 计算库编写测试工具,并且正在寻找 CRC-32C 的参考测试向量。我发现了很多 CRC-32 的内容,但没有找到专门针对 CRC-32C 的内容。有人能给我指点参考吗?

我设法使用在线计算器从此网址计算这些值:

crc32c("") = 0
crc32c("The quick brown fox jumps over the lazy dog") = 0x22620404

但是,我什至不确定我的设置是否正确。我所需要的只是一个可靠来源的参考,该来源将提供一些像这样的测试向量。

crc32
4个回答
9
投票

CRC 目录 为 ASCII 字符序列的 CRC-32C 提供

0xe3069283
的校验值:“
123456789
”(不带引号)。


6
投票

这里是来自RFC3720的测试数据,它使用crc32c。

https://www.rfc-editor.org/rfc/rfc3720#appendix-B.4


2
投票

这是一个“mee Too”答案,其中包含一些您可以在不解析标准的情况下使用的值。与 Adler 的

MAKECRC.C
和 Intel 的 CRC 内在函数进行了交叉检查。

Adler 的实现被修改为使用 0x82F63B78 多项式,它具有以下系数:

/* terms of polynomial defining this crc (except x^32): */
static int p[] = {0,6,8,9,10,11,13,14,18,19,20,22,23,25,26,27,28};

下面是字符串/CRC-32C 对。注意字节顺序。下面的答案是在小端机器上逐字节提取的,就像呈现传统的摘要一样。

{"", "\x00\x00\x00\x00"}
{"a", "\x30\x43\xd0\xc1"}
{"abc", "\xb7\x3f\x4b\x36"}
{"message digest", "\xd0\x79\xbd\x02"}
{"abcdefghijklmnopqrstuvwxyz", "\x25\xef\xe6\x9e"}
{"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", "\x7d\xd5\x45\xa2"}
{"12345678901234567890123456789012345678901234567890123456789012345678901234567890", "\x81\x67\x7a\x47"}
{"123456789", "\x83\x92\x06\xe3"}

0
投票

致浏览谷歌来到这里的任何人:

请注意,这些测试适用于

CRC32C
NOT
CRC32

CRC32C
使用不同的多项式,您的测试将失败。我必须通过艰苦的方式才能学会这一点。

© www.soinside.com 2019 - 2024. All rights reserved.