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
- Open CRC32 in the Toolbox101 app.
- Paste the text or dump you want checked into the
Inputbox. - The 8-character uppercase checksum appears in the
Outputbox as you paste or type. - Click
Copyand 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 dogOutput
414FA339Check 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.