验证网址:
标准CRC-8验证
需要校验的数据:abc
数据的十六进制:61 62 63
参数模型:CRC-8
宽度:8
多项式表达式:x8+x2+x+1
多项式:07
初始值:00
结果异或值:00
输入数据反转:NO
输出数据反转:NO
校验结果:5F
将0E添加到校验的数据后面:61 62 63 5F,重新计算校验结果为0.
校验完成
CRC-8/ITU验证
需要校验的数据:abc
数据的十六进制:61 62 63
参数模型:CRC-8/ITU
宽度:8
多项式表达式:x8+x2+x+1
多项式:07
初始值:00
结果异或值:55
输入数据反转:NO
输出数据反转:NO
校验结果:0A
将0A添加到校验的数据后面:61 62 63 0A,重新计算校验结果为F9,不正确
将校验结果0A与结果异或值:55再次取异或,得到5F,也就是结果未取异或前的值。
将5F添加到校验的数据后面:61 62 63 5F,重新计算校验结果为55,然后与结果异或值:55进行异或,结果为0。
校验完成
CRC-8/ROHC验证
需要校验的数据:abc
数据的十六进制:61 62 63
参数模型:CRC-8/ROHC
宽度:8
多项式表达式:x8+x2+x+1
多项式:07
初始值:FF
结果异或值:00
输入数据反转:YES
输出数据反转:YES
校验结果:24
将24添加到校验的数据后面:61 62 63 24,重新计算校验结果为00。
校验完成
CRC-8/MAXIM验证
需要校验的数据:abc
数据的十六进制:61 62 63
参数模型:CRC-8/ROHC
宽度:8
多项式表达式:x8+x5+x4+1
多项式:31
初始值:00
结果异或值:00
输入数据反转:YES
输出数据反转:YES
校验结果:42
将42添加到校验的数据后面:61 62 63 42,重新计算校验结果为00。
校验完成
总结
- 都为CRC-8,但参数模型不一定相同。
- 多项式,最高位为宽度数组,即x8,最低位为1.
- 初始值不影响再次校验。
- 结果异或值,会影响校验步骤。
4.1. 再次校验时,需将之前的校验计算结果与“结果异或值”进行再次异或,取得未参与异的原始校验值。
4.2.将“原始校验值”附加到原始数据后面,再次进行校验,得到一个与“结果异或值”相同的数值。
4.3.这个数字与自身(或者“结果异或值”)进行异或运算,结果为0,通过校验。 - 输入数据反转、输出数据反转,对于一个字节(8位)来说,其实就是把输入数据中每个字符中的二进制进行一次倒序重排。通常情况下,这两个保持相同状态(同时选,或同时不选),不影响再次校验。