本工具计算什么
本工具采用 CRC-32/ISO-HDLC:反射多项式为 0xEDB88320,初始值为 0xFFFFFFFF,最终异或为 0xFFFFFFFF。结果以无符号数表示,固定输出 8 个十六进制字符,前导零不会省略。这里不是 CRC32C。
CRC32C 使用不同多项式,对相同输入通常会得到不同结果,不能因此直接判断某个文件损坏。部分二进制格式还会规定校验字段的字节存储顺序;本页提供的是数值的十六进制显示,不是已经按容器格式序列化的字段。
CRC32 主要检测意外数据错误,不用于抵抗有意篡改。结果匹配不是安全认证。检查文件时,请选择实际文件,保留其原始字节;复制解码后的文本可能改变编码或换行,从而得到另一个合法但不同的校验值。
可核对的示例
UTF-8 · abc · CRC32
352441c2
如何计算与比较
- 在输入文本中粘贴需要计算的内容,或点击示例加载
abc。工具按 UTF-8 编码计算,保留输入中的空格和换行。 - 单条文本模式下,不超过 64 KiB 的非空输入会在停止输入片刻后自动计算。计算空字符串或更大的文本时,请点击生成哈希。修改输入后,旧结果会立即清除。
- 如需核对已保存的文件,请切换到文件校验,确认算法后选择或拖入文件。文件模式会读取原始字节并自动开始计算。
批量处理时,勾选每行独立计算,选择是否包含空行,再点击生成哈希。逐行模式不会自动计算。CRLF、LF 和 CR 仅用于分隔记录,不计入各行摘要;重复行保留各自的原始行号。
将完整的十六进制参考值粘贴到比较预期值(可选),再点击核对。比较时忽略字母大小写和首尾空白,但不接受内部空格或错误长度。复制会保留完整结果。TXT、CSV 导出包含输入标识、算法和摘要,不包含原始文本或密钥。
限制、隐私与下一步
文本上限为 10 MiB;逐行模式最多接受 10,000 条记录,按过滤空行前的数量计算。文件队列最多 50 个文件,每个不超过 1 GiB,按 2 MiB 分块依序读取。这些限制用于控制浏览器资源占用,不保证每部手机都能快速处理最大输入;必要时可取消计算。计算在浏览器中完成,正常的页面和资源请求仍会发送到托管服务器。
与文件工具、压缩格式中的 CRC32 对照
本页把 CRC-32/ISO-HDLC 的数值显示为八位小写十六进制,包括前导零。其他软件可能把相同的 32 位模式显示为无符号十进制,或者有符号的负整数。比较前应正确转换表示形式;本页比较框不接受负号或 0x 前缀。
格式内置的 CRC 还取决于覆盖范围。例如 gzip 尾部的 CRC 对应解压后的原始数据,而不是整个 .gz 文件。将压缩包本身拖进本页计算,自然不会复现这个字段。应先确认格式要求覆盖的字节、CRC 变体以及二进制存储字节序;本工具不会自动解析压缩包成员。
同一个 CRC32 的三种整数表示
输入 123456789,不带末尾换行。下面的十六进制、无符号十进制和有符号十进制表示相同的 32 位模式。本页比较框只接受其中八位十六进制形式。
CRC-32/ISO-HDLC / 123456789:
Hex: cbf43926
无符号十进制: 3421780262
32 位有符号十进制: -873187034
CRC32 不同不一定代表文件损坏
| 现象 | 原因 | 处理方式 |
|---|---|---|
| 与 CRC32C 参考值不同 | CRC32C 使用不同多项式 | 使用 CRC32C 实现,不要用本页的 ISO-HDLC 替代。 |
| gzip 尾部 CRC 与 .gz 文件 CRC 不同 | 尾部字段覆盖解压后的数据 | 对照同一份解压数据,而非压缩容器。 |
| 结果开头带零 | 完整格式仍需八个十六进制字符 | 保留前导零,只去掉额外的显示前缀。 |