CRC32 Calculator – CRC-32, CRC-32C, CRC-16, CRC-8, Adler-32

Get the CRC-32 of a text, a list of hex bytes or a file, together with CRC-32C, CRC-16/ARC, CRC-16/CCITT-FALSE, CRC-8 and Adler-32.

Loading tool…

About the CRC32 Calculator

A cyclic redundancy check treats the data as one long binary number, divides it by a fixed generator polynomial and keeps the remainder. CRC-32 with the polynomial 0x04C11DB7 (written 0xEDB88320 in its bit-reflected form) is the checksum of Ethernet frames, ZIP and gzip archives, PNG chunks and zlib's crc32(). It detects every burst error of up to 32 bits and practically all accidental corruption, but it is not a cryptographic hash: anyone can craft data with a chosen CRC, so use SHA-256 when the data may have been tampered with.

A CRC is defined by more than its polynomial: the initial register value, whether input bytes and the result are bit-reflected, and a final XOR all change the result, which is why two “CRC-16” tools can disagree. This page computes well-defined models from the CRC catalogue: CRC-32C (Castagnoli, used by iSCSI, SCTP, ext4, Btrfs and cloud storage APIs, and accelerated by the SSE4.2 and ARMv8 CRC instructions), CRC-16/ARC, CRC-16/CCITT-FALSE (polynomial 0x1021, initial value 0xFFFF), CRC-8 (polynomial 0x07) and Adler-32, the faster but weaker sum at the end of every zlib stream.

Each value is shown in hex and decimal; the main checksum also as bytes in both orders and as Base64. Byte order matters when you compare with a file format: gzip stores its CRC-32 little-endian, PNG stores it big-endian, and HTTP headers such as x-amz-checksum-crc32 carry the Base64 of the big-endian bytes. To check an implementation, the standard test input is the ASCII text 123456789, whose CRC-32 is CBF43926.

How to use it

  1. Type or paste text, or switch to “Hex bytes” to enter raw bytes such as DE AD BE EF.
  2. To check a file, click “Open file” or drop it on the input box.
  3. Choose upper case and the 0x prefix as you need them.
  4. Copy the CRC-32 in the form you need, or any of the other checksums below it.

Frequently asked questions

Why is my CRC-32 different from another tool's?
Usually the input differs by invisible bytes: a trailing newline, Windows line endings (CR LF) or another text encoding. This tool hashes text as UTF-8 exactly as typed. If the input is identical, the other tool probably uses a different model such as CRC-32C, CRC-32/BZIP2 or CRC-32/MPEG-2.
What is the difference between CRC-32 and CRC-32C?
Only the polynomial: CRC-32 uses 0x04C11DB7 and CRC-32C uses 0x1EDC6F41 (Castagnoli), which detects more error patterns in typical packet sizes and has hardware support in modern x86 and ARM processors. The two are not interchangeable.
Can I use CRC-32 to verify a download or store passwords?
It protects against accidental corruption only. With 32 bits, collisions are easy to find and a CRC can be forged on purpose, so use SHA-256 for downloads and bcrypt or Argon2 for passwords.
How large can the file be?
The file is read into memory and processed in slices so the page stays responsive. Tens to hundreds of megabytes work well; nothing is uploaded.

Related tools