请输入报文内容后查看校验结果
功能说明
校验码用于检测数据在传输或存储过程中是否发生错误,是串口通信、工业总线、嵌入式协议中的必备环节。本工具一次性给出同一份报文的 BCC、LRC 以及十余种标准 CRC 结果,并支持自定义 CRC 参数,所有计算在浏览器本地完成,报文不会离开你的设备。
输入格式
选择「十六进制报文」时,输入内容会按字节解析,分隔符非常宽松:空格、逗号、分号、冒号、换行、0x 前缀都可以混用,也可以完全不加分隔符连续书写(此时按每两位一字节切分,总长度必须为偶数)。选择「文本」时,输入内容会先按 UTF-8 编码成字节再计算,这一点很重要——同一段中文用 GBK 编码算出的 CRC 与 UTF-8 并不相同。
算法说明
BCC(块校验码):把所有字节逐个异或,实现最简单,能检出奇数位错误,常见于门禁、POS、串口私有协议。LRC(纵向冗余校验):先对所有字节求和取低 8 位,再取反加一(即求补码),使得数据加校验码之和的低 8 位为零,Modbus ASCII 模式采用此算法。
CRC(循环冗余校验)基于二进制多项式模二除法,检错能力远强于前两者。一个 CRC 算法由五个参数唯一确定:多项式 poly、初始值 init、输入是否按位反射 refin、输出是否按位反射 refout、以及输出异或值 xorout。参数不同结果完全不同,因此对接协议时务必确认对方使用的具体变体。本工具采用查表法实现,为每个多项式预生成 256 项查找表,逐字节推进,比逐位计算快约八倍。所有内置变体均已通过业界标准校验值验证:以字符串 123456789 为输入,CRC-32/IEEE 应得 0xCBF43926,CRC-16/MODBUS 应得 0x4B37,CRC-8 应得 0xF4。
字节序与常见坑
结果列同时给出了「字节序反转」值。Modbus RTU 协议在报文中先发 CRC 低字节再发高字节,也就是说计算得到 0x4B37 时,实际上线的字节是 37 4B,直接照抄高位在前的写法是最常见的对接失败原因。另一个常见问题是校验范围搞错:多数协议的 CRC 只覆盖地址域到数据域,不包含帧头、帧尾与 CRC 自身,请按协议文档裁剪好报文再计算。
使用场景
Modbus RTU 与 ASCII 报文调试、串口与 485 总线协议对接、单片机固件通信校验、文件完整性快速比对、以及协议逆向分析时反推校验算法。
温馨提示
- 您的反馈将帮助我们改进产品体验
- 反馈内容会匿名保存,保护您的隐私
- 我们会认真阅读每一条反馈
暂无反馈记录
