CRC 校验计算器
计算文本或十六进制字节的 CRC-8、CRC-16 和 CRC-32 校验值,内置常用预设,支持自定义多项式
正在加载工具…
用 34 种具名的 CRC-8、CRC-16、CRC-32 算法或自定义参数计算文本、十六进制字节或文件的 CRC,例如校验 Modbus 帧,或查明某个设备使用的是哪种 CRC。
使用方法
- 选择“文本”“十六进制字节”或“文件”,然后输入数据。
- 选择“算法”,例如 CRC-16/MODBUS。CRC 以十六进制、十进制和二进制显示。
- “附加到帧末尾的字节”显示 CRC 字节的发送顺序。
- 要识别未知的 CRC,在“查找 CRC 值”中输入期望的值。
- 对于未列出的算法,打开“参数”,设置宽度、多项式、初始值、反转和结果异或值。
计算方式与说明
- 预设和校验值依据 RevEng Catalogue of parametrised CRC algorithms;每个预设都用其校验值(ASCII 文本 123456789 的 CRC)测试过。
- MODBUS 等反转算法通常先发送低字节,其他算法先发送高字节。
- 文件在本设备上读取,不会上传。同时还显示累加和、XOR、LRC、Fletcher-16 和 Adler-32。
常见问题
- 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 等密码学哈希。