Σ Checksum Calculation Utility

Fletcher & Adler Checksum Calculator

Use this Fletcher & Adler Checksum Calculator to calculate Fletcher-16, Fletcher-32, and Adler-32 checksum values from text or hexadecimal bytes. View the final running sums, checksum in hexadecimal and decimal, input length, word count, and padding information.

✓ Fletcher-16 ✓ Fletcher-32 ✓ Adler-32 ✓ Text & Hex Input ✓ Running Sum Details
SUM
Calculate Fletcher / Adler Checksum
● Ready
Choose the checksum family and width you want to calculate.
Hex mode accepts spaces, colons, dashes, and line breaks.
Enter text or select Hexadecimal Bytes to process exact byte values.
Checksum Result Calculated
Checksum
Decimal
Sum 1
Sum 2
Input Size
Processing Details -

What Is a Fletcher & Adler Checksum Calculator?

A Fletcher & Adler Checksum Calculator computes lightweight arithmetic checksums designed to detect accidental changes in a sequence of bytes or words. Unlike CRC algorithms, Fletcher and Adler checksums are based on running modular sums rather than polynomial division.

This calculator supports three useful variants: Fletcher-16, Fletcher-32, and Adler-32. You can enter ordinary text or exact hexadecimal bytes and calculate the resulting checksum directly in your browser.

These algorithms are useful for protocol analysis, data integrity testing, embedded development, compression formats, file handling, networking research, and debugging software that implements rolling or arithmetic checksums.

How to Use the Fletcher & Adler Checksum Calculator

Select a checksum algorithm

Choose Fletcher-16, Fletcher-32, or Adler-32 depending on the format or protocol you are testing.

Select the input format

Use Text / UTF-8 for characters or Hexadecimal Bytes when exact binary values are required.

Enter the data

Paste the text or hexadecimal byte sequence whose checksum you want to calculate.

Click Calculate Checksum

The calculator processes the data using the selected Fletcher or Adler algorithm.

Inspect the result

The page displays the hexadecimal and decimal checksum, internal sum values, input size, and algorithm-specific details.

What Is Fletcher-16?

Fletcher-16 maintains two 8-bit running sums. The first sum accumulates each input byte modulo 255. The second sum accumulates the changing first sum, also modulo 255.

Conceptual Fletcher-16: sum1 = 0 sum2 = 0 For each byte: sum1 = (sum1 + byte) mod 255 sum2 = (sum2 + sum1) mod 255 Final checksum: checksum = (sum2 << 8) | sum1

Because the second sum depends on the sequence of intermediate first sums, Fletcher checksums provide sensitivity to both byte values and their positions.

Fletcher-16 Worked Example

For the ASCII text abcde, the bytes are:

61 62 63 64 65 Using Fletcher-16: Final Sum 1 = 0xF0 Final Sum 2 = 0xC8 Combined checksum: 0xC8F0

You can load this exact test by clicking the Fletcher-16 example button above.

What Is Fletcher-32?

Fletcher-32 applies the same two-running-sum concept to 16-bit words. Each word contributes to a first accumulator modulo 65535, while a second accumulator tracks the running first sum.

This calculator interprets adjacent input bytes as big-endian 16-bit words. If the input contains an odd number of bytes, a zero byte is appended only for the checksum arithmetic so the final byte can form a complete word.

Conceptual Fletcher-32: sum1 = 0 sum2 = 0 For each 16-bit word: sum1 = (sum1 + word) mod 65535 sum2 = (sum2 + sum1) mod 65535 Final checksum: checksum = (sum2 << 16) | sum1

RFC 1146 discusses Fletcher checksum algorithms in the context of alternate TCP checksum methods. :contentReference[oaicite:1]{index=1}

What Is Adler-32?

Adler-32 is another two-sum checksum, but it differs from Fletcher in important ways. Adler-32 initializes the first accumulator to 1, uses the prime modulus 65521, and processes individual bytes.

Adler-32 initialization: s1 = 1 s2 = 0 For each byte: s1 = (s1 + byte) mod 65521 s2 = (s2 + s1) mod 65521 Final checksum: checksum = (s2 << 16) | s1

RFC 1950 specifies Adler-32 for the zlib data format and explains why the prime modulus 65521 and initial value 1 are used. :contentReference[oaicite:2]{index=2}

Adler-32 Worked Example

A common demonstration uses the text Wikipedia.

Input: Wikipedia Adler-32 result: 0x11E60398

The calculator’s default input uses this example so you can immediately verify that Adler-32 calculation works as expected.

Fletcher vs Adler Checksums

Algorithm Input Unit Modulus Initial First Sum Output
Fletcher-16 8-bit byte 255 0 16 bits
Fletcher-32 16-bit word 65535 0 32 bits
Adler-32 8-bit byte 65521 1 32 bits

RFC 1950 specifically contrasts Adler-32’s prime modulus 65521 with the Fletcher approach and notes that Adler-32 initializes its first sum to 1. :contentReference[oaicite:3]{index=3}

Why Does Adler-32 Use 65521?

The Adler-32 modulus is 65521, the largest prime number smaller than 65536. Using a prime modulus helps avoid certain classes of undetected changes that can occur with a non-prime modulus.

RFC 1950 notes this distinction directly when comparing Adler-32 with Fletcher-style checksums. :contentReference[oaicite:4]{index=4}

Why Does Adler-32 Start at 1?

Adler-32 initializes its first running sum to 1 instead of zero. This makes the message length influence the second accumulator even when bytes contain zero values.

RFC 1950 explains that this initialization avoids the behavior where a sequence containing only zero bytes would otherwise produce the same all-zero Fletcher-style result regardless of length. :contentReference[oaicite:5]{index=5}

Text Input vs Hexadecimal Input

Text / UTF-8

Use this mode when the source data is ordinary text. The calculator converts the characters into UTF-8 bytes before computing the checksum.

Hexadecimal Bytes

Use hex mode when you need exact protocol or binary byte values such as 01 03 00 FF 7A.

Fletcher-32 and Odd-Length Data

Fletcher-32 works on 16-bit quantities. Therefore a byte sequence with an odd number of bytes cannot naturally form complete 16-bit words.

This calculator pairs the final unmatched byte with a zero byte for checksum calculation. The results section clearly indicates when that padding was required.

The zero byte is calculation padding. It does not automatically mean an extra byte belongs in the original file or protocol message.

Fletcher and Adler vs CRC

Fletcher and Adler checksums are arithmetic checksums based on modular addition. CRC algorithms use polynomial division over binary fields.

CRC algorithms generally have stronger and more formally characterized error detection properties for many communications applications, while Fletcher and Adler algorithms can be simpler and computationally inexpensive.

The zlib manual describes Adler-32 as a checksum available alongside CRC-32 and notes its use by zlib streams. :contentReference[oaicite:6]{index=6}

Where Fletcher and Adler Checksums Are Useful

Data Integrity Testing

Compare calculated checksums before and after storing, transmitting, or processing data.

Embedded Development

Test firmware implementations of lightweight checksum algorithms.

Protocol Analysis

Investigate whether unknown data structures use Fletcher-style checksums.

Compression Formats

Adler-32 is associated with the zlib data format defined in RFC 1950.

File Verification

Check whether an application-generated arithmetic checksum matches expected data.

Software Debugging

Verify byte order, input boundaries, initialization, and checksum combination logic.

Common Fletcher & Adler Checksum Mistakes

Using the wrong modulus

Fletcher-16 uses 255, Fletcher-32 uses 65535, while Adler-32 uses 65521.

Starting Adler-32 at zero

Adler-32 starts with s1 equal to 1, not zero.

Processing Fletcher-32 as bytes

Fletcher-32 works with 16-bit words in this calculator.

Ignoring byte order

Different software implementations may define word interpretation explicitly, so always compare the same byte order when checking Fletcher-32 values.

Confusing checksum width

Fletcher-16 produces a 16-bit result, while Fletcher-32 and Adler-32 produce 32-bit results.

Fletcher & Adler Checksum Calculator FAQs

What is Fletcher-16?
Fletcher-16 is a 16-bit arithmetic checksum based on two running sums modulo 255 over input bytes.
What is Fletcher-32?
Fletcher-32 uses two running sums modulo 65535 over 16-bit words and combines them into a 32-bit checksum.
What is Adler-32?
Adler-32 is a 32-bit checksum defined for zlib that uses two running sums, initial values s1=1 and s2=0, and modulus 65521.
What is the difference between Fletcher-32 and Adler-32?
Fletcher-32 uses 16-bit input words and modulus 65535, while Adler-32 processes bytes, uses modulus 65521, and initializes its first sum to 1.
Is Adler-32 a CRC?
No. Adler-32 is an arithmetic checksum based on modular sums, not polynomial CRC division.
What is the Adler-32 checksum of Wikipedia?
Using standard Adler-32, the checksum of the ASCII/UTF-8 text Wikipedia is 0x11E60398.
What is the Fletcher-16 checksum of abcde?
Using the byte-oriented Fletcher-16 algorithm implemented on this page, the checksum is 0xC8F0.
What modulo value does Fletcher-16 use?
Fletcher-16 uses modulo 255 for both running sums.
What modulo value does Fletcher-32 use?
The Fletcher-32 implementation on this page uses modulo 65535.
Why does Adler-32 use modulo 65521?
65521 is a prime number below 65536, which helps avoid some classes of unchanged checksum results possible with non-prime moduli.
Can I calculate checksums from hexadecimal bytes?
Yes. Select Hexadecimal Bytes and enter values such as 31 32 33 34 or a continuous hexadecimal string.
What happens if Fletcher-32 receives an odd number of bytes?
This calculator appends one zero byte for calculation so the final byte can be paired into a 16-bit word.
Does Adler-32 use UTF-8 for text?
Yes. Text mode converts input characters to UTF-8 bytes before performing the checksum.
Which algorithm does zlib use?
RFC 1950 specifies Adler-32 as the checksum for the zlib data format.
Does this calculator require server-side calculation?
No. The checksum calculation runs in the browser. The WordPress PHP snippet only inserts the required JavaScript into the page footer.

Calculate Fletcher & Adler Checksums Instantly

Enter text or hexadecimal data, calculate Fletcher-16, Fletcher-32, or Adler-32, and inspect the final modular sums, checksum value, input size, word count, and padding details directly in your browser.

Scroll to Top