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.
-
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
Choose Fletcher-16, Fletcher-32, or Adler-32 depending on the format or protocol you are testing.
Use Text / UTF-8 for characters or Hexadecimal Bytes when exact binary values are required.
Paste the text or hexadecimal byte sequence whose checksum you want to calculate.
The calculator processes the data using the selected Fletcher or Adler algorithm.
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.
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:
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.
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.
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.
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.
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
Fletcher-16 uses 255, Fletcher-32 uses 65535, while Adler-32 uses 65521.
Adler-32 starts with s1 equal to 1, not zero.
Fletcher-32 works with 16-bit words in this calculator.
Different software implementations may define word interpretation explicitly, so always compare the same byte order when checking Fletcher-32 values.
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?
What is Fletcher-32?
What is Adler-32?
What is the difference between Fletcher-32 and Adler-32?
Is Adler-32 a CRC?
What is the Adler-32 checksum of Wikipedia?
What is the Fletcher-16 checksum of abcde?
What modulo value does Fletcher-16 use?
What modulo value does Fletcher-32 use?
Why does Adler-32 use modulo 65521?
Can I calculate checksums from hexadecimal bytes?
What happens if Fletcher-32 receives an odd number of bytes?
Does Adler-32 use UTF-8 for text?
Which algorithm does zlib use?
Does this calculator require server-side calculation?
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.