CRC常用于通信中的数据校验,比如以太网、USB、CAN,本文使用crcmod模块来计算CRC值。一、首先要先安装crcmod模块。二、然后调用crcmod 来初始化自己的CRC算法,主要是CRC多项式、开始计算时的初始值、计算结果后的xor。本文使用的Python版本为3.7,如下是测试代码:
import crcmod
str1 = '123456789'
crc32_func = crcmod.mkCrcFun(0x104C11DB7, initCrc=0, xorOut=0xFFFFFFFF)
print(hex(crc32_func(str1.encode())))
测试结果如下所示:
注意事项:
1、需在第N位(8、16、32)置1,比如,当使用32位的多项式时,需要在第32位(从0位开始计算)置1,如上图所示。
2、需要将输入的数据转换成byte字节输入,不能使用字符串。