CRC 通用校验计算工具

用法:选择 CRC 算法,输入十六进制数据,实时计算校验值。支持 Modbus、CCITT、IBM、DNP、CRC32 等 9 种工控常用算法。 全部在浏览器本地计算,不上传、不联网、不记录。

1 选择算法 + 输入数据

选择算法并输入数据后实时出结果

工控常用 CRC 算法速查

算法多项式初始值反转最终异或典型应用
CRC-16/MODBUS0x80050xFFFF是0x0000Modbus RTU、大多数串口协议
CRC-16/CCITT-FALSE0x10210xFFFF否0x0000XMODEM、蓝牙、某些 RFID
CRC-16/XMODEM0x10210x0000否0x0000XMODEM 协议
CRC-16/IBM0x80050x0000是0x0000Bisync、Modbus 早期变体
CRC-16/DNP0x3D650x0000是0xFFFFDNP3 协议(电力/水务)
CRC-320x04C11DB70xFFFFFFFF是0xFFFFFFFF以太网、ZIP、PNG、固件校验

常见问题

工控中最常用的 CRC 算法是哪个?

Modbus RTU 使用 CRC-16/MODBUS(初始值 0xFFFF,多项式 0x8005,输入输出均反转,最终不异或)。这是工控领域最常见的 CRC 算法,本工具默认选中它。

CRC-16/MODBUS 和 CRC-16/IBM 有什么区别?

两者多项式相同(0x8005),输入输出反转也相同,区别仅在初始值:MODBUS 初始值 0xFFFF,IBM(ARC)初始值 0x0000。对同一组数据,MODBUS 的结果通常和 IBM 不同。

什么是 refin / refout?为什么有的算法结果不一样?

refin 表示输入字节是否按位反转(reflected),refout 表示最终 CRC 值是否按位反转。Modbus 等大多数工控协议 refin=refout=true(LSB first),而 CCITT-FALSE 等算法 refin=refout=false(MSB first)。这是同一多项式算出不同结果的根本原因。

CRC32 用在什么工控场景?

CRC32 常用于工业以太网协议(如 EtherNet/IP、PROFINET 的某些层)、文件校验、固件升级包校验。工控现场更常见的是 CRC16(Modbus、Profibus、DNP3 等),CRC32 多用于数据量较大或可靠性要求更高的场景。

← 返回在线工具总览