What this does
Calculates CRC32, CRC32C, three CRC64 variants and Adler-32 for text, raw bytes or a file of any size. Each result is shown in hex and decimal, and you can paste an expected value to check it. Files are read in chunks in a background worker with a progress bar.
Which variant is which
- CRC32 is CRC-32/ISO-HDLC, the one in zip, gzip, PNG and Ethernet.
- CRC32C is the Castagnoli polynomial used by iSCSI, ext4, Btrfs and Kafka; it detects more errors than CRC32 and has hardware support on modern CPUs.
- CRC64-ECMA is CRC-64/ECMA-182 as written in the standard (no reflection, zero start value). CRC64-XZ is the same polynomial reflected with inverted start and end values, as used by xz and Go's ECMA table. CRC64-ISO is the ISO 3309 polynomial as in Go's ISO table. They give different answers for the same input, so match the variant to the system you are comparing with.
- Adler-32 is the checksum at the end of every zlib stream; it is faster than CRC32 but weaker on short inputs.
Check values
For the ASCII text 123456789 the results are CRC32 cbf43926, CRC32Ce3069283, CRC64-ECMA 6c40df5f0b497347, CRC64-XZ995dc9bbdf1939fa, CRC64-ISO b90956c775a41001 and Adler-32091e01de. The "Load example" button fills that input.
Limits
Checksums detect accidental corruption only. They are linear and unkeyed, so anyone can construct data with a chosen CRC. For integrity against an attacker use thehash generator or HMAC.
Privacy
Computation happens in your browser. Nothing is uploaded.