Skip to content
MoneyDeck

CRC32 Checksum Calculator

Compute CRC-32, CRC-32C, CRC-16, CRC-8 and Adler-32 for text or hex bytes

Updated · Free, no signup

CRC-32 (ISO-HDLC, zip/PNG)

414FA339

CRC-32 as unsigned decimal

1095738169

CRC-32C (Castagnoli)

22620404

CRC-16/MODBUS

A89C

CRC-16/CCITT-FALSE

8FDD

CRC-8 (SMBus)

C1

Adler-32

5BDC0FDA

Fletcher-16

FEE8

Bytes processed

43

  • Modbus RTU frames append the CRC low byte first: 9C A8.
  • Little-endian CRC-32 bytes (as stored in ZIP headers): 39 A3 4F 41.

About the CRC32 Checksum Calculator

This CRC32 checksum calculator computes the standard CRC-32 used by ZIP, gzip, PNG and Ethernet, plus several other popular checksums of the same input: CRC-32C (Castagnoli, used by iSCSI, ext4 and many storage systems), CRC-16/MODBUS, CRC-16/CCITT-FALSE, CRC-8, Adler-32 (used inside zlib streams) and Fletcher-16.

Type or paste text — it is encoded as UTF-8 bytes — or switch to hex mode to checksum raw bytes such as a serial frame or a packet capture. Each result is shown as zero-padded hexadecimal, and CRC-32 is also shown as an unsigned decimal, which is what many APIs and databases store.

Embedded developers checking a Modbus frame, engineers verifying a firmware image header and programmers matching a checksum from another library will all find it handy. Checksums detect accidental corruption; they are not cryptographic, so use a SHA-256 hash when you need tamper resistance.

How to use the crc32 checksum calculator

  1. 1Paste text or hex bytes into the data box.
  2. 2Choose Text (UTF-8) or Hex bytes as the input format.
  3. 3Read the CRC-32 at the top, plus the other checksums below it.
  4. 4Copy the value in the format your system expects (hex or decimal, upper or lower case).

Formula and method

CRC = remainder of M(x)·xⁿ ÷ G(x) over GF(2) · Adler-32 = (B << 16) | A, A = 1 + Σbytes, B = Σ A (mod 65521)

A cyclic redundancy check treats the data as a long binary polynomial and divides it by a fixed generator polynomial using XOR arithmetic; the remainder is the checksum. Each named CRC is defined by its width, polynomial, initial value, whether bits are reflected and a final XOR. CRC-32 uses polynomial 0x04C11DB7 (reflected 0xEDB88320) with initial value and final XOR 0xFFFFFFFF; CRC-32C uses 0x1EDC6F41; CRC-16/MODBUS uses reflected 0x8005 with initial 0xFFFF; CRC-16/CCITT-FALSE uses 0x1021 with initial 0xFFFF; CRC-8 uses 0x07.

Adler-32 keeps two running sums modulo 65,521 (the largest prime below 2¹⁶): A starts at 1 and adds each byte, and B adds each new A. Fletcher-16 is the same idea with two 8-bit sums modulo 255. The calculator uses table-driven CRC routines and checks against the standard test string "123456789".

M(x)
Message bits as a polynomial
G(x)
Generator polynomial of degree n
A, B
Adler/Fletcher running sums

Worked examples

The pangram test string

"The quick brown fox jumps over the lazy dog" is 43 ASCII bytes. Its CRC-32 is the well-known 0x414FA339 (1,095,738,169 as an unsigned integer), and its Adler-32 is 0x5BDC0FDA.

Standard check value "123456789"

CRC catalogues publish the checksum of the nine ASCII digits "123456789" for each algorithm. Matching CBF43926 for CRC-32, E3069283 for CRC-32C, 4B37 for Modbus and 29B1 for CCITT-FALSE confirms the parameters are right.

Modbus RTU request frame in hex

A Modbus "read 10 holding registers from address 0 on slave 1" request is 01 03 00 00 00 0A. Its CRC-16/MODBUS is 0xCDC5, which is transmitted low byte first, so the complete frame is 01 03 00 00 00 0A C5 CD.

Frequently asked questions

What is a CRC32 checksum used for?+

CRC-32 detects accidental changes to data. ZIP and gzip archives, PNG images and Ethernet frames store a CRC-32 so the receiver can recompute it and spot corruption from bad storage or noisy links.

Is CRC32 secure enough to verify downloads?+

No. A CRC is easy to forge deliberately — anyone can change a file and adjust a few bytes to keep the same CRC. For integrity against tampering use a cryptographic hash such as SHA-256.

Why does my CRC32 differ from another tool?+

Usually the input bytes differ (a trailing newline, Windows CRLF line endings, or text encoding), or the other tool uses a different variant such as CRC-32C, CRC-32/BZIP2 or a non-inverted output. Check the bytes count and the variant name.

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

They use different generator polynomials: CRC-32 uses 0x04C11DB7, CRC-32C (Castagnoli) uses 0x1EDC6F41, which has better error detection for some message lengths and has a dedicated instruction on modern x86 and ARM CPUs.

What is the CRC-32 of an empty string?+

The CRC-32 of zero bytes is 0x00000000, because the initial value 0xFFFFFFFF is XORed with the same final value. Adler-32 of empty input is 0x00000001, since its A sum starts at 1.

Related tools