CRC-32 计算器 (CRC-32 与 CRC-32C)
开发
CRC-32 是 32 位循环冗余校验 — 一种快速的非加密校验和,用于检测 zip、gzip 压缩包、PNG 块、以太网帧及众多文件格式中的意外损坏。本计算器实现标准的反射、查表算法(初值 0xFFFFFFFF、末尾 XOR 0xFFFFFFFF),与著名测试向量 CRC-32("123456789") = 0xCBF43926 一致。还提供 CRC-32C(Castagnoli,多项式 0x1EDC6F41),即 iSCSI、SCTP、ext4 元数据与 Intel SSE4.2 CRC 指令所用的变体,其 "123456789" 向量为 0xE3069283。输入 UTF-8 文本或原始 hex 字节,即可读取小写 hex、大写 hex 与无符号 32 位十进制结果。可用于将下载与公布的 CRC 核对、检查你自行计算的数据,或调试校验和不匹配。全部在本地运行 — 不上传任何内容。注意:CRC-32 仅检测意外错误,并非安全哈希,切勿用于校验不可信或对抗性数据。
CRC-32 检测意外损坏,而非篡改。安全场景请用加密哈希(SHA-256)。
使用方法
- 选择变体(CRC-32 常用;iSCSI/ext4/SSE4.2 用 CRC-32C)。
- 选择输入是 UTF-8 文本还是 hex 字节。
- 输入或粘贴,复制 hex 或十进制结果。
常见问题
- 这是哪种 CRC-32?
- 默认是标准 CRC-32/ISO-HDLC(也称 IEEE 802.3、zlib 的 crc32)— 输入输出反射,初值 0xFFFFFFFF,末尾 XOR 0xFFFFFFFF,多项式 0x04C11DB7(反射形 0xEDB88320)。这正是 zip、gzip、PNG 所用,且与 CRC-32("123456789") = 0xCBF43926 一致。
- CRC-32C 有何用途?
- CRC-32C 使用 Castagnoli 多项式(0x1EDC6F41),错误检测特性更佳。用于 iSCSI、SCTP、Btrfs/ext4 元数据,并由 Intel SSE4.2 CRC32 指令硬件加速。其 "123456789" 向量为 0xE3069283。用一种变体算出的 CRC 不会与另一种相同。
- 能校验二进制数据吗?
- 可以 — 将输入格式切换为 Hex 并粘贴字节(如 0xDEADBEEF 或 'de ad be ef')。工具也接受 UTF-8 文本,会先编码为字节再校验。hex 模式下空格与可选的 0x 前缀会被忽略。
- CRC-32 安全吗?
- 不安全。CRC-32 用于捕捉随机的传输或存储错误,而非防止蓄意篡改 — 构造一个具有相同 CRC 的不同输入非常容易。要对抗攻击者保证完整性,请改用 SHA-256 等加密哈希。
相关工具
Base64 与十六进制互转
在浏览器中将 Base64 字符串转换为十六进制字节,并将十六进制转换回 Base64,支持 URL-safe。
Quoted-Printable 编码与解码
将文本编码为 MIME Quoted-Printable(RFC 2045)或解码 — 处理 =XX 转义、软换行与 UTF-8 — 全部在浏览器内完成,编码时按 76 字符换行。
哈希生成器 (SHA)
根据文本生成 SHA-1、SHA-256、SHA-384 和 SHA-512 哈希。
URL 编码 / 解码
将文本按百分号编码用于网址,或将编码的网址解码为文本。
Base64 编码 / 解码
即时将文本编码为 Base64,或将 Base64 解码为文本。
JSON 格式化与校验工具
在浏览器中格式化、美化、压缩并校验 JSON。