Adler-32 checksum
Compute a Adler-32 digest of any file, on your device.
Runs on your device. The file is never uploaded.
Adler-32 checksum keeps two running sums modulo 65521, packs them into 32 bits and prints 8 lowercase hex characters. RFC 1950 puts the same value in a zlib trailer, computed over the uncompressed bytes. The arithmetic is cheaper than CRC32 and catches fewer accidental errors, and neither resists a match built on purpose.
Questions
Is Adler-32 a secure hash?
No. It is a checksum for spotting accidental damage, and it offers no resistance to someone deliberately constructing a match. Do not use it for integrity that has to survive an attacker, for de-duplication of untrusted input, or for anything security shaped. Use SHA-256 hash instead.
How does Adler-32 differ from CRC32?
By construction. Adler-32 keeps two running sums taken modulo 65521 and packs them into 32 bits, while CRC32 computes a polynomial remainder. Adler is cheaper arithmetic; CRC32 generally catches more kinds of accidental error. Both are 32-bit checksums with the same limitation on purpose built collisions.
How long is the output?
32 bits, printed as 8 lowercase hex characters, after a line giving the title and your file name. There are no options to set. Eight characters is a small space, so unrelated files can collide by accident, which is tolerable for spotting damage and useless as an identity.
Where would I see an Adler-32 in the wild?
At the end of a zlib stream. RFC 1950 puts an Adler-32 of the uncompressed data in the trailer, which is why the checksum is bundled with compression libraries at all. Note that it covers the uncompressed bytes, so it will not match a checksum of the compressed file.
Can I run it over multiple files?
Yes, each file is checksummed on its own and returns its own value, so a batch gives you a list. It runs through hash-wasm in a Web Worker in this tab, with nothing uploaded. Generate all hashes prints Adler-32 next to every other hash-wasm value for a single file.