编码解码哈希加密格式化时间转换开发生成文本处理网络工具其他工具
首页 / 哈希加密 / CRC32校验

CRC32校验

计算文本的 CRC32 校验值。

输入
结果

这个工具能做什么

这个工具把你粘贴进来的文本按 UTF-8 编码转成字节流,再算出对应的 32 位 CRC32 循环冗余校验值,同时给出十六进制(如 0x414FA339)和十进制两种写法。日常开发里经常要临时核对一段数据、一个字符串或一小段配置有没有被改动、传输过程中有没有出错,为此专门敲 python -c 或写几行代码算 CRC 略嫌麻烦,这里直接贴文本就能拿到结果。所有运算都在浏览器本地完成,输入不会上传。

CRC32 的本质是把整段数据看成一个很长的二进制多项式,用一个固定的生成多项式做模 2 除法,余数就是校验值。ZIP、PNG、gzip、以太网帧普遍采用的是同一个标准多项式 0x04C11DB7(按位反转后写作 0xEDB88320),初始值取 0xFFFFFFFF,算完再和 0xFFFFFFFF 做异或,输入输出都做比特反射。实际实现一般不逐位计算,而是预生成一张 256 项的查找表,一次处理一个字节,所以速度极快、适合校验大文件。需要留意的是,不同参数(多项式、初始值、反射方式、末尾异或)会得出完全不同的结果,本工具采用的是与 ZIP/PNG 一致的最主流那一套。

最常见的用法是快速比对两份数据是否一致:比如你从服务器取到一段配置或一个字符串,怀疑复制粘贴时缺了字符,把两边分别算一次 CRC32,值相同基本就能确认内容没被改动。又比如解析 PNG 文件时,每个数据块(chunk)末尾都带着一个 CRC32,你可以把块类型加块数据拼起来手动算一遍,和文件里存的值对照,判断这个块是否损坏。ZIP 的每个文件条目头部也存了解压后内容的 CRC32,排查压缩包报错时同样能靠它定位是哪一环出了问题。

要强调的是 CRC32 只是检错码,既不是加密也不是安全哈希,它的数学结构是线性的,攻击者可以轻易构造出两段 CRC 相同的数据,甚至反推出该往哪里补几个字节让校验值凑成指定结果,所以绝不能拿它做防篡改、口令校验或数字签名,那类场景应改用 SHA-256 等密码学哈希。另外 CRC32 强依赖输入的字节,同一段文字用 UTF-8 和 GBK 编码算出的值不一样,末尾多一个换行、多一个空格也会让结果完全改变,比对时要保证两边编码和内容严格一致。还有一点,网上部分工具输出的 CRC 值可能来自 CRC-32/BZIP2、CRC-32/MPEG-2 等不同参数,和本工具对不上属正常,确认是不是同一套标准即可。

CRC32校验是一个免费的在线工具,打开网页就能用,不用下载也不用注册。平时大家搜的“crc32”、“crc32计算”、“crc32校验”,说的都是这个。

常见使用场景

使用方法

  1. 把内容粘贴到输入框(生成类工具直接设置选项)。
  2. 按需要选择选项,点操作按钮。
  3. 结果出现在下方,点「复制结果」即可带走。

常见问题

CRC32 和 MD5、SHA-256 有什么区别,能互相替代吗?
CRC32 是检错码,只有 32 位、结构线性,专门用来发现随机传输错误,速度快但极易被人为构造碰撞;MD5/SHA-256 是密码学哈希,位数更长、抗碰撞。防篡改、校验下载文件真伪要用后者,这类安全场景不能用 CRC32 替代。
为什么同一段文字,我用别的工具算出的 CRC32 和这里不一样?
CRC32 有多个变种,多项式、初始值、是否比特反射、末尾是否异或都会影响结果。本工具用的是 ZIP/PNG/以太网通用的那套(多项式 0xEDB88320,初值与末尾异或均为 0xFFFFFFFF);如果对方用的是 CRC-32/BZIP2、MPEG-2 等其它参数,结果自然不同。
输入里的中文、换行、空格会怎么处理?
文本先按 UTF-8 编码成字节再计算,所以中文按其 UTF-8 字节序参与运算,末尾的换行符和空格也都算作数据的一部分。想和别处结果对齐,要保证编码一致、内容一字不差,尤其注意行尾有没有多余的空白。
十六进制和十进制两个结果是什么关系,哪个更常用?
两者是同一个 32 位数值的不同进制写法,数值完全等价。十六进制(如 0x414FA339)在代码和文件格式规范里更常见,十进制则便于直接比对或存进数据库,取哪个看你的使用场景。
CRC32 结果有时带 0x 前缀、有时位数不足 8 位,比对时要注意什么?
0x 只是十六进制的书写前缀,不影响数值,比对时把前缀和大小写统一即可,如 0x414fa339 与 414FA339 是同一个值。若某个结果不足 8 位十六进制,通常是前导零被省略了,补齐到 8 位再比更稳妥。

相关工具

查看全部「哈希加密」工具 →

相关名词解释