如何计算CRC-CCITT(Kermit)多项式

时间:2016-10-13 11:23:10

标签: php crc kermit

我遇到CRC问题。我在十六进制中的消息是: 80 00 00 03 一个crc f5 1f 。我想,多项式是0x1021(crc-ccitt kermit)。如何找出正确的多项式是什么?我怎么看,如果我需要它反转,如果初始值是0xffff或0x0000或其他什么?如何计算我正在搜索的多项式?我是否必须将 80 00 00 03 f5 f1 转换为BIN,然后将它们分开? 我试图用prog reveng 来表达自己,但那并没有成功。也许是因为我没有所有的params -.-

我找到了一个php-function HERE

但这不会为我计算正确的金额。也许它不是那个php-function

中的CRC-CCITT KERMIT

1 个答案:

答案 0 :(得分:1)

0x1ff5确实是80 00 00 03的CRC-CCITT(Kermit)。 (它显然以流中的小端顺序存储。)

您找到的PHP代码适用于 false " CRC-CCITT",您可以在RevEng目录here中找到它。

true CRC-CCITT(Kermit)参数为here in that catalog。这些位是相反的,因此您使用反转的多项式0x8408,然后将位向下移位而不是向上移位。初始寄存器内容为零,并且没有最终的异或 - 。