什么是 CRC?
CRC (Cyclic Redundancy Check,循环冗余校验) 是一种根据网络数据包或计算机文件等数据产生简短固定位数校验码的散列函数,主要用于检测或校验数据传输或保存后可能出现的错误。
CRC 工作原理
CRC 通过多项式除法来计算校验值。发送端将数据与生成多项式进行模2除法运算,得到的余数作为校验码附加到数据后面。接收端用同样的方法计算,如果余数为0,说明数据传输正确。
支持的算法
• CRC-4 - 4位校验码,常用于ITU标准
• CRC-8 - 8位校验码,用于简单数据校验
• CRC-16 (CCITT) - 16位校验码,广泛用于通信协议
• CRC-16 (Modbus) - Modbus协议专用CRC算法
• CRC-32 - 32位校验码,用于文件完整性校验
• CRC-32C - CRC-32的变种,性能更优
算法参数表
| 算法 (Algorithm) |
结果位数 |
多项式 (Poly) |
初始值 (Init) |
输入反转 (RefIn) |
输出反转 (RefOut) |
结果异或值 (XorOut) |
CRC-4 |
4 位 |
0x03 |
0x0 |
False |
False |
0x0 |
CRC-8 |
8 位 |
0x07 |
0x0 |
False |
False |
0x0 |
CRC-16 (CCITT) |
16 位 |
0x1021 |
0xFFFF |
False |
False |
0x0 |
CRC-16 (Modbus) |
16 位 |
0xA001 |
0xFFFF |
True |
True |
0x0 |
CRC-32 |
32 位 |
0xEDB88320 |
0xFFFFFFFF |
True |
True |
0xFFFFFFFF |
CRC-32C |
32 位 |
0x82F63B78 |
0xFFFFFFFF |
True |
True |
0xFFFFFFFF |
应用场景
• 网络通信中的数据完整性校验
• 文件传输和存储的校验
• 串口通信协议(如Modbus)
• 存储设备的数据完整性检查
• 压缩文件格式(如ZIP)的校验
输入格式说明
• 文本模式 - 直接输入文本内容,工具会自动转换为字节数组进行计算
• 十六进制模式 - 输入十六进制字符串(如 48656C6C6F),工具会解析为字节数组
注意事项
不同协议的CRC算法参数可能不同(如初始值、多项式、是否反转等),本工具使用的是各算法的标准实现。如果与实际协议不匹配,请检查协议规范中的CRC参数设置。