Hash / 密码学辅助

CRC 计算器先对齐字节,再对齐参数

选择准确的算法型号和输入格式,手动计算后查看校验值、参数组及字节顺序。

CRC 计算器

文本或字节

校验结果

点击计算查看结果,空文本也可以计算。

文本和文件内容均在浏览器中处理。

参数选项
位宽
32
多项式(十六进制)
04C11DB7
初始值(十六进制)
FFFFFFFF
输入位反射
是
输出位反射
是
最终异或(十六进制)
FFFFFFFF

自定义 CRC 使用省略最高项的正向多项式。Adler-32 使用固定参数。

填写数值形式的 4 位或 8 位十六进制,允许首尾空白及 0x 前缀,不按小端字节解释。

文本上限为 1,000,000 个 UTF-16 单元,解码后上限为 1 MiB;单文件上限为 2 GiB,按 1 MiB 分块读取。

点击计算查看结果,空文本也可以计算。

CRC 计算器适合排查串口设备、压缩文件或测试用例中的校验值差异。协议只写 CRC16 时,信息仍不够完整:多项式相同也可能因为初始值、反射或最终异或不同而得到另一结果。

先用已知字节验证参数,再处理真实报文。输入框里看起来像十六进制的字符,只有切换到十六进制模式后才会按字节解释;文本末尾多一个换行也会改变校验和。

为什么使用 CRC 计算器

把参数组与校验值一起保留

CRC 计算器会在每份结果中记录完整型号和参数。ARC 与 MODBUS 使用相同多项式,却从不同初始寄存器开始;排查 CRC16 校验时,保留参数比只抄一个数更容易复现。

同一段字节经过两个不同参数组后,生成不同的校验结果。

分块读取仍是整文件的一次计算

各块按原顺序更新同一个累加状态,最后才输出整文件校验和。文件不会被拆成多个独立校验值后再异或;进度可见,取消后不会导出半成品。

文件的连续数据块依次进入同一个累加状态,最终产生一个校验值。

从三个容易混淆的地方排查

01

先核对型号全名

常见 ZIP 风格的 CRC32 校验请选择 ISO-HDLC。CRC32C 和 MPEG-2 是另外的预设。自定义时按协议填写正向多项式、初始值、输入反射、输出反射和最终异或,不要只核对位宽。

02

确认输入到底代表什么

十六进制模式中的 31 32 33 表示三个字节;文本模式则会把数字和空格都编码。只有完整字节之间的 ASCII 空白会被忽略。其他字符编码的数据,请直接选择原文件或提供对应字节。

03

分清数值与发送顺序

标准样例 123456789 用来核对 Check。MODBUS 的结果数值为 4B37,小端发送字节为 37 4B;预期值应填 4B37。修改后可按 Ctrl/Cmd+Enter 重新计算,旧结果不能导出。

从标准参数到原始字节

八种预设与自定义模型

CRC 在线计算覆盖 ARC、MODBUS、IBM-3740、XMODEM,以及 ISO-HDLC、CRC-32C、MPEG-2。自定义入口限定为 16 位和 32 位,允许独立设置两种位反射。

明确区分位反射与字节序

RefIn 反转每个输入字节的位,RefOut 反转最终寄存器的位。大端和小端显示只是同一结果数值的字节排列,两类操作没有合并为一个开关。

Adler32 校验和有独立规则

Adler-32 的 S1 从 1 开始,S2 从 0 开始,按模数 65521 累加。空输入结果为 00000001,多项式和最终异或参数不适用于它。

可以复核的结果报告

下载的 JSON 包含算法、完整数值参数、输入模式、字节数、预期值和比较结论,也保留十六进制、十进制、二进制及两种字节序。报告不包含原文本或文件内容。

输入语法与能力边界

不会替你修补报文
十六进制输入拒绝 0x、逗号、注释、非 ASCII 空白和奇数半字节,也不会左补零、追加 CRC 或自动去掉帧尾。哪些字节参与计算须由你根据协议确定。
文本和文件使用不同上限
文本及十六进制源字符串最多 1,000,000 个 UTF-16 单元,解码后最多 1 MiB。一次只处理一个不超过 2 GiB 的文件;空文本和空文件均可计算,不进行目录扫描或批量校验单验证。
保留原始数据差异
文本固定使用 UTF-8,不清理空白、BOM 或换行,拒绝未配对的代理项。文件按原始字节读取,不解压归档,不自动切换字符集;需要其他编码时请提供准确字节。
参数必须由用户确定
不自动猜算法、不反推多项式、不生成源码,也不支持 CRC8、CRC64 或修补字节。参数变化即取消当前任务并禁用导出;自定义参数的样例值仅反映当前设置。
校验值相同仍可能碰撞
CRC 和 Adler 用于发现意外损坏,不能保证检测所有变化,无法证明发送者身份,也不能修复损坏文件。需要抵抗恶意篡改时,应选择适合协议的密码学认证方式。

CRC 计算器常见问题

为什么不同 CRC 计算器的结果不一样?

先比较原始字节,再逐项核对位宽、多项式、初始值、两种反射和最终异或。还要确认另一工具展示的是数值还是反序字节。CRC 计算器把这些参数保留在结果旁,便于定位差异。

CRC-32 和 CRC-32C 有什么区别?

两者都输出 32 位,但 ISO-HDLC 使用 04C11DB7,CRC-32C 使用 1EDC6F41。标准样例的结果分别是 CBF43926 与 E3069283,必须按文件格式或协议要求选择。

上传文件有大小限制吗?

本页每次可选一个最大 2 GiB 的文件,按 1 MiB 分块处理。设备速度会影响耗时;超限会报错,计算过程中可以取消。文本输入采用更小的字符数和字节数上限。

粘贴文本时,空白字符或换行符风格会影响 CRC 结果吗?

会。文本中的空格、制表符和换行均参与 UTF-8 编码,LF 与 CRLF 的字节不同,结果也可能不同。十六进制模式只忽略完整字节之间的 ASCII 空白,因此适合明确指定输入字节。

CRC 能检测所有错误吗?

不能。固定长度的校验值必然存在碰撞,CRC 能检测的错误类别还取决于多项式和消息长度。校验一致只说明本次计算值相同,不等于数据可信或完全无误。

还有疑问?

回到 CRC 计算器

先用 CRC 计算器核对标准样例,再逐项修改协议参数,保存确认过的结果报告。