CRC32的工作机制

35 0

CRC-32 是 32 位循环冗余校验,用来发现意外的数据损坏,不是密码学哈希,也不能防故意篡改。下面重点说明内部过程说明。

CRC32的工作机制

CRC 把数据看作二进制多项式,按约定多项式做除法,余数即为校验值。实现上多用 256 项表加速。Python zlib.crc32 与以太网/PNG 使用相同参数:初值 0xFFFFFFFF,末尾再异或 0xFFFFFFFF,多项式反转形式为 0xEDB88320。

示例

输入:a+b=c

计算结果:e043e6cd(十进制 3762546381)

说明:CRC-32(与 PHP hash("crc32b")、ZIP/以太网常用的反转多项式 0xEDB88320 一致)。

规则说明

  • 写明变体:常用的是 IEEE/ISO 3309,与 zlib.crc32 / PHP crc32b 相同的那一种
  • 输入按字节计算,文本先约定 UTF-8
  • 输出格式化为 8 位十六进制时先转成无符号 32 位
  • 不能用 CRC 代替密码学哈希

中文的处理

“中文”按 UTF-8 的 CRC-32 是 5a09ed37。

本站的哈希全家桶工具可以直接处理,计算在浏览器本地完成,适合快速核对结果。

常见问题

【和 Adler-32 有什么不同?】Adler-32 是另一种校验和(zlib 常用),更简单,查错能力也不同。

【“abc”的 CRC-32 是多少?】352441c2(crc32b / zlib)。

【CRC-32 安全吗?】只适合发现意外损坏,不能防故意伪造。

文中示例可以在本站对应工具中验证;处理密钥、证书等敏感数据时,请注意保护隐私。

署名:123问编辑部 · 最近修订:2026-11-11 · 已按编辑与审核说明检查;内容仅供参考,不构成医疗、法律或投资建议。发现错误可查看纠错方式。

标签: 数码开发

抱歉,评论功能暂时关闭!