FormatterHQ

Adler-32 Checksum Calculator

Calculate the Adler-32 checksum of text or files — the fast 32-bit check value at the end of every zlib stream.

Loading tool…
Ready.

How to use the Adler-32 Hash Generator

  1. Type or paste text into the input box, or switch the source to File and choose a file — it is hashed locally, never uploaded.
  2. Read the main hash at the top — the table below shows the same input under every other common algorithm. Tick Uppercase hex if you need capitals.
  3. To verify a value, paste it into Compare with an expected hash — the tool reports a match, or which algorithm it matches instead. Copy any row with its Copy button.

Adler-32 checksum calculator

Adler-32 is a checksum invented by Mark Adler in 1995 for the zlib compression library (RFC 1950). It is simpler and faster to compute than CRC-32 while still catching most accidental errors. This Adler-32 calculator shows the 32-bit value of any text or file as 8 hex characters.

Example

Input:

The quick brown fox jumps over the lazy dog

Adler-32:

5bdc0fda

The classic textbook example is “Wikipedia”, whose Adler-32 is 11e60398.

How Adler-32 is calculated

  1. Start with A = 1 and B = 0.
  2. For each byte: A = (A + byte) mod 65521 and B = (B + A) mod 65521.
  3. The checksum is B × 65536 + A, written as 8 hex digits.

65521 is the largest prime below 2¹⁶. Because A starts at 1, the checksum of empty input is 00000001, not zero.

Strengths and weaknesses

  • Fast. Only additions and occasional modulo operations — no tables or polynomial arithmetic.
  • Weak for short inputs. With only a few hundred bytes, the sums do not wrap around the modulus, so many values are never used and error detection is noticeably weaker than CRC-32.
  • Not cryptographic. Like any checksum, it is easy to forge deliberately. Use a cryptographic hash or HMAC to detect tampering.

Zlib vs gzip trailers

Zlib and gzip compress data with the same DEFLATE algorithm but check it differently: a zlib stream ends with an Adler-32 of the uncompressed data, while a gzip file stores a CRC-32 and the original length. Mark Adler chose the faster Adler-32 for zlib because it is embedded in other formats where speed mattered most.

Where Adler-32 is used

  • The 4-byte trailer of every zlib stream, including data inside PNG images and PDF files, checks the uncompressed data.
  • rsync’s rolling “weak” checksum is an Adler-32-style sum that can be updated in constant time as a window slides through a file.
  • Quick integrity checks in games, embedded systems and network protocols where speed is key.

In code: Python zlib.adler32(data), Java java.util.zip.Adler32, PHP hash('adler32', $s). To create a zlib stream and see its Adler-32 trailer, try Zlib Compress; for stronger error detection, use CRC-32. The calculation runs in your browser.

Computing Adler-32 in code

Most standard libraries already include Adler-32, so you rarely need to write the loop yourself. Each of these prints 11e60398 for the text “Wikipedia”:

# Python
import zlib
print(format(zlib.adler32(b"Wikipedia"), "08x"))

// PHP
echo hash('adler32', 'Wikipedia');

// Java
Adler32 a = new Adler32();
a.update("Wikipedia".getBytes(StandardCharsets.UTF_8));
System.out.printf("%08x%n", a.getValue());

// Go
fmt.Printf("%08x\n", adler32.Checksum([]byte("Wikipedia")))

Why your value might not match

  • A trailing newline. echo "Wikipedia" adds \n, which changes the result to 158803a2. Use printf or paste the text without a final line break.
  • A different text encoding. The same word encoded as UTF-16 gives 23cc0398. This tool hashes UTF-8 bytes.
  • Signed integers. Some languages print the checksum as a negative number; format it as unsigned hex before comparing.

Frequently asked questions

What is the difference between Adler-32 and CRC-32?
Both produce 32-bit checksums. Adler-32 is faster and simpler but detects errors less reliably, especially in short messages. CRC-32 is the better error detector.
Why is the Adler-32 of an empty string 00000001?
The first sum starts at 1 and the second at 0, so with no input the result is 0 × 65536 + 1 = 1.
Is Adler-32 secure?
No. It is a checksum for accidental errors and can be forged easily. Use SHA-256 or HMAC when security matters.
Where is Adler-32 found in a zlib stream?
In the last four bytes, stored big-endian, computed over the uncompressed data.

Last updated September 26, 2026

Related tools

CRC-32 Hash Generator Generate the CRC-32 hash of any text or file online. Instant 32-bit checksum in hex, computed in your browser. Argon2 Hash Generator Hash and verify passwords with Argon2id, Argon2i or Argon2d using custom memory, iterations and parallelism. Runs locally via WebAssembly. Bcrypt Hash Checker Check whether a password matches a bcrypt hash, like PHP password_verify, entirely in your browser. Bcrypt Hash Generator Generate a bcrypt password hash ($2y$) with a configurable cost factor, compatible with PHP password_hash and Laravel. BLAKE2b Hash Generator Generate BLAKE2b hashes (128–512 bits) with optional keyed MAC mode, from text or files. BLAKE2s Hash Generator Generate BLAKE2s hashes (128–256 bits), the 32-bit-optimised BLAKE2 variant, with optional key. BLAKE3 Hash Generator Generate BLAKE3 hashes from text or files — the fast, parallel successor of BLAKE2. Checksum Calculator Calculate MD5, SHA-1, SHA-256, SHA-512, CRC-32 and more checksums of a file or text at once. CRC-16 Hash Generator Calculate CRC-16 checksums (ARC, MODBUS, CCITT, XMODEM, KERMIT, X-25, USB) for text or files. CSR Decoder Decode a PKCS#10 certificate signing request to check the subject, SANs, key size and signature before you send it to a CA. CSR Generator Generate an RSA private key and certificate signing request (CSR) with SANs in your browser — the private key never leaves your device. ECDSA & Ed25519 Key Generator Generate elliptic-curve key pairs (P-256, P-384, P-521) and Ed25519 keys as PEM or JWK for JWT signing, TLS and APIs.