跳到正文

CRC 校验计算器

计算文本或十六进制字节的 CRC-8、CRC-16 和 CRC-32 校验值,内置常用预设,支持自定义多项式

正在加载工具…

用 34 种具名的 CRC-8、CRC-16、CRC-32 算法或自定义参数计算文本、十六进制字节或文件的 CRC,例如校验 Modbus 帧,或查明某个设备使用的是哪种 CRC。

使用方法

  1. 选择“文本”“十六进制字节”或“文件”,然后输入数据。
  2. 选择“算法”,例如 CRC-16/MODBUS。CRC 以十六进制、十进制和二进制显示。
  3. “附加到帧末尾的字节”显示 CRC 字节的发送顺序。
  4. 要识别未知的 CRC,在“查找 CRC 值”中输入期望的值。
  5. 对于未列出的算法,打开“参数”,设置宽度、多项式、初始值、反转和结果异或值。

计算方式与说明

常见问题

01 03 00 00 00 0A 的 CRC-16 Modbus 校验码是多少?
是 0xCDC5。Modbus RTU 先附加低字节,所以帧以 C5 CD 结尾。
CRC-16/CCITT-FALSE、XMODEM 和 KERMIT 有什么区别?
三者都使用多项式 0x1021。CCITT-FALSE 初始值为 0xFFFF,XMODEM 为 0,KERMIT 为 0 且位反转。对 123456789 分别得到 0x29B1、0x31C3 和 0x2189。
为什么我算出的 CRC-32 和别的软件不一样?
先检查输入的字节:UTF-8 和 Latin-1 对同一文本的编码不同。标准 CRC-32 (ISO-HDLC) 对 123456789 得到 0xCBF43926;MPEG-2 和 BZIP2 使用其他设置。
CRC 能可靠地检测篡改吗?
不能。CRC 能发现意外错误,但任何人都可以修改数据后重新计算 CRC。请使用 SHA-256 等密码学哈希。