CRC32 生成器
立即计算任意文本的 CRC32 校验和。该工具将输入编码为 UTF-8,并应用标准的 IEEE 802.3 CRC-32 多项式。这一多项式用于 ZIP、gzip、PNG 和以太网。随后,工具会以 8 位十六进制数字或无符号十进制数返回结果。你可以用它检查已存储的校验和、调试文件格式,并与 zlib、PHP crc32 或其他库的结果进行比较。
常见问题
什么是 CRC32?
CRC32 是一种 32 位循环冗余校验,用于检测数据是否意外更改。此工具使用 IEEE 802.3 多项式 0x04C11DB7 的反射形式,也就是 ZIP、gzip、PNG 和 zlib 所使用的变体。结果是一个 32 位数值。
CRC32 的标准校验值是什么?
文本 123456789 的 CRC-32 已发布校验值为 cbf43926。空输入的结果为 00000000,abc 的结果为 352441c2。你可以用这些值确认另一个实现使用的是相同变体。
为什么有些工具显示的 CRC32 不同?
还有其他变体,例如 iSCSI 和 ext4 使用的 CRC-32C(Castagnoli),以及非反射的 BZIP2 形式。它们使用不同的多项式或位顺序,因此结果也不同。还要确认两端对相同字节进行哈希,包括换行符。
十进制输出是什么意思?
十进制格式会将校验和显示为从 0 到 4294967295 的无符号整数。在 64 位系统上,这与 PHP 的 crc32 以及 Python 的 zlib.crc32 相符。十六进制输出是用八位十六进制数字表示的同一个数值。
CRC32 是加密哈希吗?
不是。CRC32 用于检测随机传输错误,但任何人都可以构造出具有指定校验和的数据。如果需要防范蓄意篡改,请使用 SHA-256 或其他加密哈希。
CRC32 碰撞的可能性有多大?
由于只有 32 位,两个随机输入的校验和相同的概率约为四十亿分之一。在约 77,000 个输入中,任意一对发生碰撞的概率就已达到 50%。CRC32 适合错误检测,但不适合用作唯一标识符。
校验和计算前,文本会如何转换?
该工具会将文本按原样转换为 UTF-8 字节。非 ASCII 字符会占用多个字节,换行符也会计入,因此请确保另一端使用相同的字节。
十六进制输出会补零吗?
会。十六进制形式始终包含八位小写数字,必要时会在前面补零,因此 0x0000abcd 会显示为 0000abcd。有些工具会省略前导零或使用大写字母,但数值相同。
可以计算文件的 CRC32 吗?
此工具适用于你粘贴的文本。对于文件,请使用本地命令,例如 libarchive 工具中的 crc32,或用 zlib 编写一个简短脚本。ZIP 中央目录也会存储每个条目的 CRC32。
输入最长可以有多长?
每次请求最多可处理 5 MiB 文本。CRC32 的速度很快,因此结果会立即返回,且不会存储输入内容。