CRC32 校验

计算文本的 CRC32 校验值。

什么是CRC32 校验?

CRC32(32 位循环冗余校验)是一种基于多项式除法的校验算法,输入任意长度的数据,输出一个 32 位(8 位十六进制)的校验值,用于快速检测数据在传输或存储过程中是否发生了意外损坏。它不是加密算法,也不具备防篡改能力——只要知道算法规则,任何人都能重新计算并伪造出相同的 CRC32 值。ZIP 文件格式、以太网帧、PNG 图片的每个数据块内部都使用了 CRC32 校验。

为什么使用CRC32 校验?

当只需要快速判断"文件传输后有没有损坏""两份数据是否完全一致",而不需要抵御恶意篡改时,CRC32 计算速度快、实现简单,是很好的选择,常用于 ZIP/PNG 格式内部校验、网络包校验、简单的数据去重指纹场景。 但如果场景涉及安全性(比如校验密码、防止有人故意伪造文件签名),必须使用 SHA-256 等密码学哈希算法而不是 CRC32,因为 CRC32 的碰撞极易被人为构造出来。

使用示例

校验文本内容

输入字符串 hello,计算得到 CRC32 值 3610a686(十六进制);如果对方计算同一字符串得到不同的值,说明内容在传输中被改动,或双方字符编码不一致(比如换行符 \n 与 \r\n 的差异也会导致结果不同)。

和 ZIP 内部校验对比

ZIP 文件每个条目的头部都存有该文件解压前计算的 CRC32 值,解压时会重新计算并比对差异,用来判断压缩包内文件是否损坏,这也是本工具最常见的应用场景之一。

区分与 MD5/SHA 的用途

对同一份 100MB 文件分别计算 CRC32 和 SHA-256,CRC32 耗时明显更短;但如果目的是防篡改(比如软件安装包完整性校验),应该用 SHA-256 而不是 CRC32。

使用提示

如果目的是判断文件是否被恶意篡改而非仅检测传输错误,请改用 SHA-256/SHA-3 等密码学哈希函数,CRC32 仅适合完整性快速校验场景。

常见问题

CRC32 能用于安全校验吗?
不能。CRC32 是校验和算法,用于快速检测数据传输/存储中的意外损坏(如压缩包、文件校验),并非密码学哈希,容易被人为构造碰撞,不能用于防篡改。
十六进制结果为什么有大小写区分?
本工具输出统一为小写十六进制(8 位,不足补零),部分工具(如 zlib)默认输出也是小写,若目标系统要求大写可自行转换。
数据会上传吗?
不会。CRC32 使用查表法在浏览器本地实时计算完成。
CRC32 是加密算法吗?
不是,它只是错误检测校验和,设计目的是快速发现随机比特错误,不具备抗碰撞和抗伪造能力,不能用于密码存储或安全签名。
CRC32 会发生碰撞吗?
会,而且构造碰撞非常容易,32 位输出空间只有约 42 亿种可能,安全敏感场景应改用 SHA-256 等密码学哈希函数。
能否处理中文或二进制文件?
可以,CRC32 对任意字节序列都适用,但同一段文本在不同编码(如 UTF-8 与 GBK)下字节内容不同,算出的 CRC32 值也会不同,需保证编码一致才能对比。
为什么我算出的值和别的工具不一样?
常见原因是输入的换行符差异(\n 与 \r\n)、字符编码不同,或对方用的是变种 CRC(如 CRC32C 使用的多项式与标准 CRC32 不同),需确认双方算法参数一致。

相关工具

← 返回工具箱· 数据均在浏览器本地处理,不上传服务器。