常见的 CRC 文件格式

Common CRC file formats

是否有用于存储 CRC 参数集(即多项式、宽度、初始值、XOR 等)的通用(甚至标准化)文件格式?

根据XML、TXT、CSV等格式无所谓,只要常用即可。

是的。 Ross Williams 编写了一个 excellent tutorial on CRCs, in which he defines a canonical set of parameters to define a CRC. Greg Cook took that further and created a list of known CRCs,它使用那些具有标准格式的参数,并在每个 CRC 的一行中使用一组名称。以下是来自该站点的可能是最常见的 CRC 的示例描述:

width=32 poly=0x04c11db7 init=0xffffffff refin=true refout=true xorout=0xffffffff check=0xcbf43926 name="CRC-32"

check值为九字节ASCII字符串“123456789”的CRC校验。

我编写了 crcany code,它读取这些参数行并使用它们计算 CRC,应用按位、按字节和按字的算法。 crccany 包含 crcgen,它可以为任何 CRC 生成 C 代码。

这个参数集并没有告诉你如何将CRC放入字节流中。这是数据格式的约定,而不是 CRC 本身。所以你不得不说 CRC 字的字节是以小端还是大端顺序存储在流中,以及它们去哪里以及计算 CRC 的内容。