What is Adler-32 and what is it used for? ▾
Adler-32 is a fast 32-bit checksum algorithm designed by Mark Adler in 1995, used primarily inside zlib/Deflate compressed streams. It is computed using two running sums (A and B) modulo 65521 (the largest prime below 2^16). Adler-32 is faster than CRC-32 in pure software but is weaker — it does not detect certain classes of errors as reliably.
How do I calculate an Adler-32 checksum online? ▾
Paste your text into the input box or use the File tab to drop a file. The 8-character hexadecimal Adler-32 value appears instantly, computed in your browser.
Adler-32 vs CRC-32: which is better? ▾
CRC-32 is generally better for error detection: it detects all single-bit errors, all 2-bit errors in short messages, and all odd-numbered bit errors. Adler-32 is faster in pure software but has weaker error-detection properties, especially for short messages — for very short inputs, the upper bits of Adler-32 are biased. Use CRC-32 unless you specifically need Adler-32 for zlib/Deflate compatibility.
Is Adler-32 a cryptographic hash? ▾
No. Adler-32 is a checksum, not a cryptographic hash. It is trivially reversible and constructing collisions is extremely easy. Never use it for passwords, signatures, or security-sensitive applications.
How long is an Adler-32 value? ▾
Adler-32 is 32 bits = 4 bytes = 8 hexadecimal characters. It is the same length as CRC-32 but uses a different algorithm. The Adler-32 of the empty string is 00000001, and the Adler-32 of 'Wikipedia' is 11e60398.
Where is Adler-32 used? ▾
Adler-32 is most famous as the integrity check in zlib/Deflate compressed streams (used in gzip, PNG, ZIP's deflate). It is also used in some custom protocols where its speed advantage over CRC-32 (in pure software, without hardware CRC) was important. Modern systems with hardware CRC-32 instructions don't benefit from Adler-32's speed.
What is the Adler-32 algorithm? ▾
Adler-32 maintains two 16-bit sums. A starts at 1, B at 0. For each byte b in the input: A = (A + b) mod 65521; B = (B + A) mod 65521. The final checksum is (B << 16) | A — a 32-bit value where the upper 16 bits are B and the lower 16 bits are A. The choice of 65521 (the largest prime below 2^16) gives better distribution than using mod 2^16.