我对CRC有意见。我用十六进制的信息是:80 00 0 0 0 03 an crc是f5 1f。我想,polynom是0x1021 (crc-ccitt kermit)。怎样才能弄清楚,哪一个是正确的?如果我需要反转,如果初始值是0 0xffff还是0x0000或其他什么的话,我怎么看?我怎么才能计算出我正在寻找的多字母?我是否必须将80000003和f5 f1转换为BIN,然后将两者分开?我试着用prog 来实现自己的目标,但这并不成功。也许是因为我不是所有的人
我找到了一个php函数这里
但这对我来说是不合适的。在php-函数中,可能不是CRC-CCITT KERMIT。
发布于 2016-10-13 13:52:53
0x1ff5确实是80 00 00 03的CCITT (Kermit) .(它显然是按小端顺序存储在您的流中。)
您找到的PHP代码用于假的“CCITT”,您可以在RevEng目录这里中找到该代码。
真正的CCITT (Kermit)参数是在那本目录里.位是相反的,所以你使用多项式反转,0x8408,然后你把比特向下移动,而不是向上。初始注册内容为零,没有最终的排他性-或。
https://stackoverflow.com/questions/40019625
复制相似问题