Adler-32 and Fletcher checksum calculator

Type text or paste hex bytes to get three classic sum-based checksums at once: Adler-32, the one zlib stores at the end of a compressed stream, and the two Fletcher checksums it was derived from.

Input is

9 bytes.

Adler-32
11E60398 300286872
Fletcher-16
EE9A 61082
Fletcher-32
B7DDA1F8 3084755448

Runs in your browser: nothing you enter is sent anywhere.

How to use it

  1. Type or paste the input. Text is read as UTF-8, so letters outside ASCII count as several bytes.
  2. Switch to “Hex bytes” to check raw data, for example 78 9c or 0x01,0x02; spaces, commas and 0x are ignored.
  3. Copy the hex value. The decimal number next to it is the same checksum.

How it works

  • Adler-32: A = 1 + sum of bytes, B = sum of the successive values of A, both mod 65521; result B·65536 + A.
  • Fletcher-16: sum1 = sum of bytes, sum2 = sum of the successive sum1, both mod 255; result sum2·256 + sum1.
  • Fletcher-32: the same over 16-bit little-endian words, mod 65535; result sum2·65536 + sum1.

Example

The word Wikipedia (9 bytes):

  • Adler-32: the bytes add up to 919, so A = 1 + 919 = 920 = 0x0398; B = 4582 = 0x11E6. Result 11E60398, decimal 300286872.
  • Fletcher-16: EE9A.
  • Fletcher-32: B7DDA1F8.

The test string abcde gives Fletcher-16 C8F0 and Fletcher-32 F04FC729.

Tips

  • Compare with Python: zlib.adler32(b"Wikipedia") returns 300286872.
  • The Adler-32 of empty input is 00000001, because A starts at 1.
  • For short messages Adler-32 is weak: A and B do not wrap, so many bit patterns are left unused. CRC-32 detects errors better.

Frequently asked questions

How is Adler-32 calculated?

Two sums run over the bytes: A starts at 1 and adds each byte, B adds the current A after each byte. Both are taken modulo 65521, the largest prime below 65536. The checksum is B × 65536 + A.

Where is Adler-32 used?

In the zlib format (RFC 1950): it is the 4-byte trailer of every zlib stream, so PNG image data and many compressed files carry it. rsync uses a similar rolling sum to find matching blocks.

How do Fletcher-16 and Fletcher-32 differ?

Fletcher-16 sums bytes modulo 255 and gives 16 bits. Fletcher-32 sums 16-bit words modulo 65535 and gives 32 bits. Adler-32 is Fletcher-32 changed to work on bytes with a prime modulus and a start value of 1.

How are bytes paired into words for Fletcher-32?

Little-endian: the first byte is the low half of a word, the second the high half, and an odd last byte is padded with a zero. That is how the common C code on x86 reads data and gives the published values such as F04FC729 for abcde. Other implementations may pair bytes the other way.

Can a checksum detect tampering?

No. These checksums catch accidental errors such as corrupted bytes, but anyone can change data and recompute them. Use a cryptographic hash or an HMAC to protect against deliberate changes.

More in Developer

All tools in this category: Developer ·Updated November 4, 2026

Privacy choices

Google Analytics shows us which tools are used and whether they work. It may set cookies. Your choice is kept in this browser.