反馈

CRC-32校验

浏览器本地计算,不上传。相关: CRC-16 校验 · MD5 · SHA · 文件 Hash · 进制转换

📖 工具说明

1. CRC-32 是什么

CRC-32 用多项式除法给数据算出一个 32 位校验值,用来发现传输或存储中的随机比特错误。它检错能力强、算得快,被 zlib / gzip、PNG、ZIP、以太网帧、Ethernet FCS 等广泛采用。它不是密码学哈希,能被人为构造碰撞,不能用于校验文件是否被恶意篡改(那要用 SHA-256)。

一个 CRC-32 算法由 5 个参数确定:多项式 Poly、初始值 Init、结果异或 XorOut、输入反射 RefIn、输出反射 RefOut。参数不同结果完全不同。

2. 这个工具能做什么

全部在浏览器本地计算,数据不上传。

3. 常用预设速查

名称 Poly Init XorOut RefIn/Out 检查值(123456789)
ISO-HDLC (zlib/PNG/ZIP) 0x04C11DB7 0xFFFFFFFF 0xFFFFFFFF true 0xCBF43926
CRC-32C (Castagnoli) 0x1EDC6F41 0xFFFFFFFF 0xFFFFFFFF true 0xE3069283
BZIP2 0x04C11DB7 0xFFFFFFFF 0xFFFFFFFF false 0xFC891918
MPEG-2 0x04C11DB7 0xFFFFFFFF 0x00000000 false 0x0376E6E7
POSIX (cksum) 0x04C11DB7 0x00000000 0xFFFFFFFF false 0x765E7680

4. 使用步骤

  1. 选预设。校验 ZIP / PNG / gzip、和多数编程语言 crc32() 函数对齐,用 ISO-HDLC。
  2. 选输入格式并填入数据,或选文件。
  3. 读结果和自检行,复制 Hex 值。

5. 常见问题(FAQ)

Q:为什么和 Python zlib.crc32 / 在线其它工具结果不一样? A:多数是参数不同或输入编码不同。zlib.crc32、binascii.crc32、大多数语言的标准库都是 ISO-HDLC 预设。中文文本要确认两边都按 UTF-8。

Q:CRC-32 能当文件完整性校验吗? A:能发现传输损坏,但不能防篡改 —— CRC 可被人为构造碰撞。要防篡改用 SHA-256。

Q:POSIX 预设和 cksum 命令结果对不上? A:cksum 在数据末尾还会追加文件长度的字节再算 CRC,本工具的 POSIX 预设只算你给的数据本身,不追加长度。

Q:有符号十进制是什么? A:把 32 位结果按补码解释成带符号整数,Java 的 CRC32.getValue() 返回 long 是无符号的,但有些语言/字段是 int,会显示成负数,这一栏方便对照。

Q:能校验大文件吗? A:能,选文件即可。大文件会一次性读入内存,处理全程在本地。


相关:CRC-16 校验 · MD5 · SHA · 文件 Hash · 进制转换。

📖 了解原理

📖 相关推荐