Hashing

CRC32 checksum calculator

CRC32 computes the 32-bit checksum that gzip, PNG and Ethernet all use, shown here as 8 uppercase hex characters. Developers run it to check data that crossed a wire or disk: when the received checksum differs from the published one, the bytes changed in transit. The value updates as you paste or type, and it matches the CRC-32 that zlib and PNG chunk validators compute over the same bytes. CRC-32 is a checksum, not a cryptographic hash.

How to use CRC32

  1. Open CRC32 in the Toolbox101 app.
  2. Paste the text or dump you want checked into the Input box.
  3. The 8-character uppercase checksum appears in the Output box as you paste or type.
  4. Click Copy and compare the checksum against the value your sender published.

Worked example

CRC32 returns the output below for this input.

Input

The quick brown fox jumps over the lazy dog

Output

414FA339

Check it yourself: open CRC32 and enter the same input.

Frequently asked questions

What is CRC-32 most commonly used for?

CRC-32 detects accidental corruption in transmitted or stored data: gzip files carry it, PNG chunks are validated with it, and Ethernet frames use the same polynomial. It catches most burst and random bit errors cheaply. Because it is short and linear, it is not meant to detect deliberate tampering. See the next question.

Is CRC-32 a secure cryptographic hash?

No. CRC-32 is a 32-bit checksum, and its structure lets an attacker craft collisions in microseconds: producing two files with the same CRC-32 on purpose is trivial. Use it to catch accidental damage, and use SHA-256 when you need to detect intentional modification, as with published checksums.

Which CRC-32 variant does this tool compute?

It computes the standard CRC-32 used by zlib, gzip, PNG, and Ethernet: the reflected IEEE 802.3 polynomial 0xEDB88320, output as 8 uppercase hex characters with no 0x prefix. It is not CRC-32C (Castagnoli), the different polynomial used by newer storage and filesystem checks.

CRC32 or Adler-32: which should I use?

Adler-32, zlib's other checksum, is faster but weaker: it misses some small, symmetric changes that CRC-32 catches. CRC-32 is the safer default for a new format. Note the container difference: a gzip stream stores CRC-32, while the zlib format itself stores Adler-32 of the uncompressed data.

Use CRC32 now

Runs in your browser. Nothing you type is uploaded.