Adler32校验和计算器
计算任何文本字符串的 Adler-32 校验和,提供分步计算追踪、十六进制/十进制/二进制输出格式以及 A/B 组件拆分。
adler32校验和计算器
用于数据完整性验证的快速校验和计算。常用于 zlib、PNG 和 PDF 格式。
检测到广告拦截,导致我们无法展示广告
MiniWebtool 依靠广告收入免费提供服务。如果这个工具帮到了你,欢迎开通 Premium(无广告 + 更快),或将 MiniWebtool.com 加入白名单后刷新页面。
- 或升级 Premium(无广告)
- 允许 MiniWebtool.com 显示广告,然后刷新
Adler32校验和计算器
欢迎使用 adler32校验和计算器,这是一个用于计算文本字符串 Adler-32 校验和的高效工具。Adler-32 是一种广泛应用于数据压缩和完整性验证的校验和算法,在计算速度和错误检测能力之间提供了出色的平衡。
什么是 Adler-32?
Adler-32 是由 Mark Adler 在 1995 年作为 zlib 压缩库的一部分发明的校验和算法。它通过计算两个 16 位累加和(通常称为 A 和 B)并将其组合来生成一个 32 位的校验和值。该算法的优先级高于 CRC 算法的错误检测强度,因此非常适合完整性检查速度比检测所有可能错误更重要的应用场景。
Adler-32 的工作原理
Adler-32 算法维护两个运行累加和:
- 累加和 A: 从 1 开始,累加所有字节的和
- 累加和 B: 从 0 开始,累加所有中间 A 值的和
两个累加和都对 65521 取模,65521 是小于 216 的最大质数。最终校验和将 B 和 A 组合为:(B << 16) | A
65521 是小于 216 (65536) 的最大质数。使用质数取模可确保校验和值的分布更好,并降低碰撞(即不同输入产生相同校验和)的概率。
Adler-32 与 CRC-32 对比
| 特性 | Adler-32 | CRC-32 |
|---|---|---|
| 速度 | 更快(简单算术运算) | 较慢(多项式除法) |
| 错误检测 | 适用于随机错误 | 更擅长检测突发错误 |
| 输出大小 | 32 位 | 32 位 |
| 主要用途 | zlib, PNG, PDF | 网络协议, 存储 |
| 缺点 | 对短消息检测效果较差 | 更消耗 CPU |
常见应用
- zlib 压缩: Adler-32 是 zlib 压缩数据流中使用的完整性检查算法
- PNG 图像: PNG 文件使用 zlib 压缩,其中包含 Adler-32 校验和
- PDF 文档: 许多 PDF 流使用 zlib 压缩并带有 Adler-32 验证
- HTTP 压缩: gzip/deflate 内容编码使用 Adler-32
- 数据同步: rsync 使用 Adler-32 进行快速块比较
算法步骤
- 初始化: 设置 A = 1 且 B = 0
- 处理每个字节: 对于数据中的每个字节 D:
- A = (A + D) mod 65521
- B = (B + A) mod 65521
- 组合: 校验和 = (B × 65536) + A = (B << 16) | A
安全注意事项
重要提示: Adler-32 不是加密哈希函数,绝不应用于安全目的。它仅设计用于错误检测,不适用于:
- 密码哈希
- 数字签名
- 数据认证
- 防范恶意攻击的篡改检测
对于安全应用,请使用 SHA-256、SHA-3 或 BLAKE3 等加密哈希函数。
常见问题解答
什么是 Adler-32 校验和?
Adler-32 是由 Mark Adler 在 1995 年发明的一种校验和算法。它通过计算两个 16 位累加和(A 和 B)并对 65521 取模来生成 32 位校验和。它比 CRC-32 更快,但在检测某些错误模式方面不如后者可靠,因此非常适合对速度要求高于错误检测精度的应用。
Adler-32 是如何计算的?
Adler-32 维护两个累加和:A(初始化为 1)和 B(初始化为 0)。对于每个字节,A = (A + 字节) mod 65521,B = (B + A) mod 65521。最终校验和为 (B << 16) | A,将两个累加和组合成一个 32 位值。
Adler-32 有什么用途?
Adler-32 主要用于 zlib 压缩库以及使用 zlib 的格式(如 PNG、PDF、HTTP 压缩)。它用于在速度比加密安全性更重要的场景下进行快速数据完整性验证。
Adler-32 和 CRC-32 有什么区别?
Adler-32 计算速度更快,但错误检测能力比 CRC-32 弱。Adler-32 使用简单的加法运算,而 CRC-32 使用多项式除法。CRC-32 可以检测到更多的错误模式,在速度至关重要的情况下,首选 Adler-32。
为什么 Adler-32 使用 65521?
65521 是小于 216 (65536) 的最大质数。使用质数取模可确保校验和值的分布更好,并降低碰撞概率。16 位限制允许 A 和 B 累加和分别存入 16 位,最终组合成 32 位结果。
其他资源
引用此内容、页面或工具为:
"Adler32校验和计算器" 于 https://MiniWebtool.com/zh-cn/adler32校验和计算器/,来自 MiniWebtool,https://MiniWebtool.com/
由 miniwebtool 团队开发。更新日期:2026年1月27日