8位“简单”校验和

时间:2015-01-16 07:43:01

标签: c checksum

我正在寻找产生1字节校验和的快速校验和算法。

我检查了CRC8和Adler8,但我不完全理解样本。

不同的CRC8实现也会产生不同的结果。

在所有情况下,我都不需要任何花哨的东西。

1 个答案:

答案 0 :(得分:2)

CRC基于一种有限域数学,使用具有1位系数的多项式(数学模2)。 8位CRC是将数据视为具有1位系数的非常长的多项式被除数并将其除以9位多项式除数的结果,其产生8位余数。由于使用了1位系数,因此加或减有效地变为异或。您并不需要了解有限域数学来实现CRC,只需使用查找表或使用算法生成CRC。

您可以将所有字节加到1字节总和中,并将其用作校验和。 CRC的优点是,如果字节丢失或乱序,它有更好的机会检测到。