Home › Developer Tools › CRC32 Checksum Calculator

CRC32 Checksum Calculator

Type text or choose a file to calculate its CRC-32 plus CRC-32C, three common CRC-16 variants and Adler-32 in one go. Large files are read in chunks with a progress bar, and nothing is uploaded.

CRC-32 (IEEE 802.3)
–
AlgorithmChecksumParametersCopy
Advertisement

How to use the CRC32 Checksum Calculator

  1. Choose Text or File at the top.
  2. For text, type or paste it. Switch to Hex bytes if you want to checksum raw bytes like 31 32 33.
  3. For a file, click the drop area or drag a file onto it. A progress bar shows how much has been read.
  4. Pick the output format: hexadecimal (with optional uppercase and 0x prefix) or decimal.
  5. Press Calculate Checksum (text updates automatically) and copy the value you need, or Copy all.

CRC parameters and check values

Every CRC variant is defined by its width, polynomial, initial value, whether input and output bits are reflected and a final XOR value. The “check” column is the result for the ASCII string 123456789, which you can use to confirm any implementation.

AlgorithmWidthPolynomialInitReflectedXOR outCheck
CRC-32320x04C11DB70xFFFFFFFFYes0xFFFFFFFFCBF43926
CRC-32C320x1EDC6F410xFFFFFFFFYes0xFFFFFFFFE3069283
CRC-16/CCITT-FALSE160x10210xFFFFNo0x000029B1
CRC-16/ARC160x80050x0000Yes0x0000BB3D
CRC-16/MODBUS160x80050xFFFFYes0x00004B37
Adler-3232A = 1 + Σ bytes, B = Σ A (both mod 65521), result = B·65536 + A091E01DE

How CRC-32 is calculated

CRC-32 treats the data as one long binary number and divides it by the generator polynomial using XOR instead of subtraction; the 32-bit remainder is the checksum. In practice it is computed one byte at a time with a 256-entry lookup table:

  1. Start with crc = 0xFFFFFFFF.
  2. For each byte b: crc = table[(crc XOR b) AND 0xFF] XOR (crc >> 8), where the table holds the reflected polynomial 0xEDB88320 applied to every possible byte value.
  3. At the end, flip all bits: crc XOR 0xFFFFFFFF.

For example, the single letter a (byte 0x61) gives CRC-32 E8B7BE43, and the empty input gives 00000000.

Where each checksum is used

ChecksumUsed in
CRC-32ZIP, gzip, PNG chunks, Ethernet frames, 7-Zip and many download checksums (.sfv files)
CRC-32CiSCSI, SCTP, ext4 and Btrfs metadata, Google Cloud Storage and AWS S3 object checksums
CRC-16/CCITT-FALSETelecom and embedded protocols, some bootloaders and smart cards
CRC-16/MODBUSModbus RTU frames on RS-485 serial lines
CRC-16/ARCARC and LHA archives and other legacy formats
Adler-32zlib streams (inside PNG images and PDF FlateDecode data); rsync uses a rolling variant

Frequently asked questions

What is a CRC32 checksum?

CRC-32 is a 32-bit cyclic redundancy check: a short value computed from data with polynomial division. If even one bit of the data changes, the CRC almost certainly changes, so it is used to detect accidental corruption in ZIP files, PNG images, network frames and downloads.

What is the CRC-32 of "123456789"?

The standard check value of CRC-32 for the ASCII string 123456789 is CBF43926 (decimal 3421780262). CRC-32C gives E3069283, CRC-16/CCITT-FALSE 29B1, CRC-16/ARC BB3D, CRC-16/MODBUS 4B37 and Adler-32 091E01DE. Press the “Use check string” button to see them.

What is the difference between CRC-32 and CRC-32C?

They use different polynomials. CRC-32 (0x04C11DB7) is the classic one from Ethernet, ZIP and PNG. CRC-32C (Castagnoli, 0x1EDC6F41) detects more error patterns and has a dedicated CPU instruction, so it is used by iSCSI, SCTP, ext4, Btrfs and cloud storage APIs.

Which CRC-16 do I need?

It depends on the protocol. Modbus RTU uses CRC-16/MODBUS (send the low byte first). CRC-16/CCITT-FALSE is common in telecom and embedded protocols, and CRC-16/ARC (also called CRC-16/IBM) appears in older storage and serial formats. Check your protocol's documentation for the polynomial and initial value.

Is CRC32 a secure hash?

No. A CRC detects accidental errors but is easy to forge on purpose. To check that a file has not been tampered with, use a cryptographic hash such as SHA-256 instead.

Why do I get a different CRC32 for the same text elsewhere?

Usually the bytes differ: another encoding than UTF-8, a trailing newline, or Windows line endings (CRLF instead of LF). Some tools also print the value in decimal, little-endian byte order or without leading zeros.

Can I checksum very large files?

Yes. The file is read in 4 MB chunks directly from your disk, so even multi-gigabyte files work; the speed depends on your device. The file is never uploaded.

Related tools