zlib · rsync · non-cryptographic
Adler-32 is a simple, fast checksum used in zlib compression and rsync. Splits into two 16-bit accumulators mod 65521. Weaker error detection than CRC-32 but faster to compute. Pure JavaScript.
Input text box — the Adler-32 checksum appears instantly below as an 0x-prefixed, 8-digit hex value.Copy to copy the checksum to your clipboard.Show decimal checkbox to also see the raw 32-bit value in decimal.Clear to reset the input and start over.Adler-32 is the checksum used inside zlib streams (RFC 1950). Compute it to cross-check values embedded in compressed or wrapped data.
rsync uses an Adler-32-based rolling checksum for fast file-difference detection. Reproduce its values to debug syncs and understand how transfers stay consistent.
For short payloads, Adler-32 is faster than CRC-32. Use it for lightweight, non-cryptographic corruption detection where speed matters.
Generate both checksums side by side to see the classic speed-vs-strength tradeoff and pick the right one for your data.
See the two 16-bit accumulators modulo 65521 in action — a clean example of a checksum you can trace by hand.
Everything runs in your browser. Nothing is uploaded, logged, or sent to a server — safe for sensitive inputs.
Adler-32 is a 32-bit checksum defined in RFC 1950 for zlib. It splits data into two 16-bit accumulators, A and B, both reduced modulo the prime 65521.
Start with A = 1 and B = 0. For each unit of input, add its value to A (mod 65521), then add A to B (mod 65521). The final checksum is (B << 16) | A.
No. Adler-32 is faster to compute but has weaker error detection, especially for short or similarly-shaped inputs. CRC-32 is more reliable for larger data and is the default in formats like gzip.
No. Adler-32 offers no collision resistance or security and is easily reversed. Use SHA-256 or another cryptographic hash when you need to verify authenticity or detect tampering.
For ASCII text, yes — each character is hashed directly, matching the byte-wise value. For non-ASCII text like emoji, this tool hashes UTF-16 code units rather than UTF-8 bytes, so the result can differ from a byte-oriented implementation.
Never. All checksumming happens locally in JavaScript. Your input is not sent to, stored on, or logged by any server.