生成验证码
首先,确定CRC验证码的位数,这个也是就通常所说的CRC-8 是8位的码。 CRC-16是16位的码。一般来说这个码是是有定制标准的。
我这里为了简化计算,CRC就取4位。
原数据:101101 CRC:1011
首先原数据左移(CRC位数-1)位,这里我们左移3位得到101101000
然后数据从左到右异或
101101000
1011
000001000 当除了以后除数右移1位以后除数的第一位对的被除数的那一位不是1则继续移位,直到有1为止
1011
000000011 当除了以后余数位数小于除数的时候停止,得到余数为3位数,不足的补0,则余数为011
得到余数以后替换左移以后的原数据的最后3位的3个0,得到带校验的数:101101011
CRC的校验
用带校验的数据和CRC校验数做按位异或过程同加密一样:
101101011
1011
000001011
1011
000000000
余数为零,表示数据无错误。