Adler-32 校验和生成器
立即将任意文本转换为其 8 位字符的 Adler-32 校验和。
如何使用 Adler-32 校验和生成器
- 在输入框中键入或粘贴您的文本。
- Adler-32 校验和会随着输入实时显示。
- 点击“复制”即可获取结果。
关于 Adler-32 校验和生成器
Adler-32由Mark Adler——zlib和gzip的共同作者——设计,目的是创造一种比CRC-32计算成本更低,同时仍能捕捉实际中常见损坏类型的校验和。它是zlib数据格式所携带的完整性校验机制,因此只要您曾经解压过一个zlib数据流,Adler-32就在默默为您进行验证。结果是32位,打印为8个十六进制字符。
这种取舍是刻意为之的:Adler-32比CRC-32更快,但也更弱。它的工作原理是在遍历数据的过程中维护两个累加和并将其组合,而不是进行多项式除法,这正是它如此廉价的原因。众所周知的薄弱环节在于短消息——当输入只有几个字节时,累加和几乎没有足够的空间充分展开,因此短字符串的校验和会聚集在一起,能用到的不同数值也出奇地少。对于几千字节的压缩数据而言,这几乎不成问题。但对于哈希少量短字符串而言,这个问题就相当严重,此时CRC-32是更好的选择。
与本页面上的每一种校验和一样,Adler-32是为应对意外而设计的,而非为对抗攻击者。它之所以速度快,正是因为它完全没有抵御主动欺骗的能力,构造两个具有相同Adler-32值的不同输入十分容易。它只能回答“这份数据是否完整无损地到达了?”这一个问题,仅此而已。如果您要问的问题是“是否有人篡改过这份数据?”,就需要一种密码学哈希算法,例如SHA-256。
常见问题
Adler-32 还是 CRC-32——我该选哪一个?
Adler-32速度更快;CRC-32在发现错误方面更可靠,尤其是在处理短数据时。如果速度不是瓶颈,CRC-32通常是更安全的默认选择。Adler-32在较长的数据流上表现出色,这也正是zlib使用它的场景。
为什么 Adler-32 在处理短字符串时表现不佳?
它是通过对数据维护两个累加和来得出结果的。当输入只有几个字节时,这些累加和保持很小,因此短输入只能产生一个狭窄范围内的校验和,碰撞也就变得常见。
Adler-32 安全吗?
不安全。它绝不能用于密码、签名,或任何攻击者可能想要伪造的场景——构造两个具有相同Adler-32值的输入十分容易。它只是一种传输错误校验机制,仅此而已。
为什么结果总是 8 个字符?
Adler-32始终生成32位输出,每个十六进制字符代表4位,因此无论输入大小如何,输出都恰好是8个字符。
我的文本会被发送到其他地方吗?
您的文本会被发送到我们的服务器进行校验和计算,因为浏览器无法计算Adler-32。处理完成后会立即丢弃——绝不记录,也绝不存储。

