在两个不同的站点上计算 CRC-CCITT (Kermit),给出不同的结果

Calculating CRC-CCITT (Kermit) on two different sites, gives different results

我在玩 CRC-CCITT (Kermit),我注意到在计算不同站点的校验和时,我得到了不同的结果。

在 lammertbies.nl/comm/info/crc-calculation.html 上 123456789 的结果是 0x8921,但在 crccalc.com 上是 0x2189.

事实上,无论您在 crccalc 上输入什么值,结果都与 lammertbies 相同,但最后两个字符在前。所以 foobar 在 lammertbies 上是 0xF4E3,但在 crccalc 上是 0xE3F4。

哪个网站是正确的,另一个网站做错了什么?

这是报告的 CRC 值中大端与小端的问题。

您可以通过将 CRC 附加到字符串并检查附加字符串的 CRC == 0 来验证 CRC 的大多数实现。返回两个 CRC 计算器网站,将输入更改为十六进制,输入十六进制字符串

"3132333435363738398921"

并且 Kermit CRC 将为 0000,因此附加到字符串的 CRC 将为 0x89、0x21。