工具用的顺手吗?
你的反馈能帮助我们做得更好
CRC16校验工具,用于计算文本、Hex、Base64数据的16位循环冗余校验码,验证数据完整性。
概览
了解工具能解决的问题、计算或处理逻辑,以及数据边界。
本页把输入框中的文本按顺序送入一个 16 位循环冗余校验过程,并显示一个四位大写十六进制结果。实现对应 CRC-16/XMODEM 的核心参数:宽度 16 位、生成多项式 0x1021、初始值 0x0000、输入与输出均不反射、最终异或值 0x0000。CRC 是从一段数据计算出的固定宽度余数,常用于把“发送前的值”和“接收后的值”进行比对,以发现意外的数据变化。
参数模型:width=16,poly=0x1021,init=0x0000,refin=false,refout=false,xorout=0x0000
显示格式:0000–FFFF;不足四位时在左侧补 0,只显示十六进制字符,不附加 0x。
“CRC16”只说明结果宽度是 16 位,不能唯一确定算法。多项式、初始值、逐位方向、是否反射以及最终异或中的任一项变化,都可能让同一输入得到不同结果。尤其不要把本页结果直接当作 CRC-16/MODBUS:MODBUS 串行规范从全 1 的寄存器开始,按低位方向处理 8 位字节,并规定报文中的 CRC 低位字节先传;本页采用的是 XMODEM 参数组。
| 参数 | 本页 CRC-16/XMODEM | CRC-16/MODBUS |
|---|---|---|
| 多项式常规表示 | 0x1021 | 0x8005 |
| 初始值 | 0x0000 | 0xFFFF |
| 输入/输出反射 | 否 / 否 | 是 / 是 |
| “123456789”检查值 | 31C3 | 4B37 |
输入 ASCII 文本 123456789,页面应显示 31C3。这是 CRC-16/XMODEM 参数模型公开使用的检查值,适合确认双方实现是否选择了相同变体。页面示例文本 Hello World 的结果是 992A。计算对字符顺序、大小写、空格和换行敏感,例如末尾多一个换行就代表不同输入,结果也会改变。
31C3 检查值;资料于 2026-09-19 核验。指南
按步骤完成操作,并通过示例核对输入与结果。
先从协议文档、设备手册或现有程序中确认算法明确写的是 CRC-16/XMODEM,并核对 poly、init、refin、refout、xorout。只看到“CRC16”时,信息仍不充分。
在输入框中粘贴或键入内容。不要自行删除空格、改变大小写或忽略末尾换行;这些都是输入的一部分。若只是验证算法,可先输入 123456789。
结果会随文本变化自动更新,以四位大写十六进制形式呈现。点击结果旁的复制按钮即可取得校验码;空输入时页面不显示计算结果。
只有输入内容、字符表示和全部 CRC 参数一致时,两个结果才可直接比较。先用检查字符串排除算法变体差异,再核对实际业务文本。
场景
查看这项工具在不同工作与生活流程中的用法。
开发者拿到标明 XMODEM 参数的 ASCII 测试文本时,可生成四位结果,与文档给出的校验码逐项核对。
串口或嵌入式设备返回值不一致时,可先用 123456789 判断双方是否选错 CRC 变体,再检查实际文本是否含空格或换行。
学习或实现 CRC-16/XMODEM 时,可用短 ASCII 文本生成预期值,记录输入与结果,作为回归测试中的固定用例。
问答
集中解答高频疑问与容易混淆的问题。
最常见原因是选用了不同变体。请逐项比较多项式、初始值、输入反射、输出反射和最终异或,不能只比较“CRC16”这个名称。
31C3 是所有输入的固定结果吗?不是。它只是在 CRC-16/XMODEM 参数下,对 ASCII 字符串 123456789 得到的标准检查值;换成任何其他文本都应重新计算。
数值比较时前导 0 不改变数值,但本页固定补足四位,便于表达完整的 16 位结果。与协议字段、日志或测试用例对照时,建议保留四位。
不会。992A 与 992a 表示同一个十六进制数值;本页统一使用大写只是显示格式。
须知
使用前了解适用范围、结果限制与必要提醒。
本页面向文本计算,不提供文件、Base64 或原始十六进制字节输入,也不能把形如
313233的字符自动解释为字节31 32 33。对于 ASCII 文本,字符与单字节值一一对应;中文、emoji 等非 ASCII 字符不会先转换成 UTF-8 字节,因此不应直接拿本页结果对照要求 UTF-8 或原始二进制字节流的协议。CRC 适合发现传输或保存过程中的意外错误,但不同数据可能产生相同的 16 位结果。结果相同不能证明内容绝对一致,也不能证明来源真实或内容未被恶意篡改;需要身份认证或抗篡改能力时,应按目标系统的安全规范使用消息认证码或数字签名。
用于真实协议报文前,还要按协议确认校验覆盖范围、字段拼接顺序以及校验值在报文中的字节顺序。本页显示的是一个四位十六进制数值,不会替用户组装或追加报文字节。
推荐
查找相关工具、专题与可用的 API 能力。