FormatterHQ

CRC-32 Checksum Calculator

Calculate the CRC-32 checksum of text or files — the 32-bit error-detection code used by ZIP, gzip, PNG and Ethernet.

Loading tool…
Ready.

How to use the CRC-32 Hash Generator

  1. Type or paste text into the input box, or switch the source to File and choose a file — it is hashed locally, never uploaded.
  2. Read the main hash at the top — the table below shows the same input under every other common algorithm. Tick Uppercase hex if you need capitals.
  3. To verify a value, paste it into Compare with an expected hash — the tool reports a match, or which algorithm it matches instead. Copy any row with its Copy button.

CRC-32 checksum calculator

A cyclic redundancy check (CRC) is an error-detecting code, not a cryptographic hash. CRC-32 treats the input as a long binary polynomial, divides it by a fixed 33-bit generator polynomial and keeps the 32-bit remainder. The result, shown as 8 hex characters, changes whenever data is accidentally corrupted. This tool calculates the standard CRC-32 used by ZIP, gzip, PNG and Ethernet.

Example

Input:

The quick brown fox jumps over the lazy dog

CRC-32:

414fa339

The standard check value — the CRC of the ASCII string 123456789 — is cbf43926; implementations are verified against it.

Parameters of this CRC-32

PropertyValue
Width32 bits (8 hex characters)
Polynomial0x04C11DB7 (reflected form 0xEDB88320)
Initial value / final XOR0xFFFFFFFF / 0xFFFFFFFF
Reflected input and outputYes
Also known asCRC-32/ISO-HDLC, the IEEE 802.3 CRC

Other CRC-32 variants exist, notably CRC-32C (Castagnoli), used by iSCSI, ext4 and Btrfs metadata, and hardware-accelerated by SSE 4.2. They produce different values, so check which one a system expects.

Checksum vs cryptographic hash

CRC-32 reliably detects the kinds of errors that happen by accident — all single-bit and double-bit errors, all odd numbers of flipped bits and any burst error up to 32 bits long. But it is linear and easy to manipulate: anyone can change a file and adjust four bytes so that the CRC stays the same. Never use a CRC to detect deliberate tampering or as a security token; use SHA-256 or an HMAC instead. With only 2³² possible values, random collisions also become likely among tens of thousands of items.

The compare box ignores case, spaces, colons and a 0x prefix, so a value copied as 0xCBF43926 from a datasheet still matches cbf43926.

Where CRC-32 is used

  • ZIP and gzip archives store the CRC-32 of each file’s uncompressed data to verify extraction.
  • Every PNG chunk ends with a CRC-32 of its type and data.
  • Ethernet frames carry a CRC-32 frame check sequence.
  • Quick change detection and hash tables, where speed matters more than security.

In code: Python zlib.crc32(data), PHP hash('crc32b', $s) (PHP’s plain “crc32” algorithm is a different variant), Java java.util.zip.CRC32. For a 16-bit CRC, see the CRC-16 calculator. The checksum is computed in your browser.

Checking the CRC-32 stored in an archive or image

Because ZIP, gzip and PNG already carry CRC-32 values, you can compare them with the result here:

  • ZIP: unzip -v archive.zip lists a CRC-32 column for every entry. Extract a file, hash it here, and the values should match.
  • gzip: gzip -lv file.gz prints the CRC of the original, uncompressed data.
  • PNG: each chunk's CRC covers the four type bytes plus the data, not the length field before them.

Watch the byte order when you read the raw bytes in a hex editor. ZIP and gzip store the checksum little-endian, so 414fa339 appears as 39 a3 4f 41 in the file. PNG stores it big-endian, in the same order this tool prints.

Frequently asked questions

Is CRC-32 a hash?
It is a checksum. It behaves like a hash for detecting accidental errors, but it is not cryptographic and can be forged easily.
Why does PHP’s crc32 give a different result?
PHP’s hash() function has two algorithms: crc32b is the standard ZIP/gzip CRC-32 used here, while crc32 is a different bzip2-style variant. The crc32() function matches crc32b.
What is the CRC-32 of “123456789”?
cbf43926. It is the standard check value for this CRC-32 variant.
Can two files have the same CRC-32?
Yes. With only about 4.3 billion possible values, collisions are expected in large collections and are trivial to create on purpose.

Last updated September 26, 2026

Related tools

Adler-32 Hash Generator Generate the Adler-32 hash of any text or file online. Instant 32-bit checksum in hex, computed in your browser. CRC-16 Hash Generator Calculate CRC-16 checksums (ARC, MODBUS, CCITT, XMODEM, KERMIT, X-25, USB) for text or files. CSR Decoder Decode a PKCS#10 certificate signing request to check the subject, SANs, key size and signature before you send it to a CA. CSR Generator Generate an RSA private key and certificate signing request (CSR) with SANs in your browser — the private key never leaves your device. ECDSA & Ed25519 Key Generator Generate elliptic-curve key pairs (P-256, P-384, P-521) and Ed25519 keys as PEM or JWK for JWT signing, TLS and APIs. Encrypt & Decrypt Text Encrypt or decrypt text with AES, Triple DES, Rabbit, RC4 or Blowfish using a secret passphrase — in your browser. Hash Identifier Identify hash types from their format: MD5, SHA-1/256/512, bcrypt, Argon2, sha512crypt, NTLM, MySQL, phpass, Django and more. HMAC Generator Generate HMAC-SHA256, HMAC-SHA1, HMAC-SHA512, HMAC-MD5 and SHA-3 HMACs with a secret key, as hex or Base64. Htpasswd Generator Create .htpasswd entries for Apache and Nginx basic auth with bcrypt, APR1-MD5 or SHA-1 — one username:password per line. Keccak Hash Generator Generate original Keccak-224/256/384/512 hashes, including the Keccak-256 used by Ethereum and Solidity. MD2 Hash Generator Generate the MD2 hash of any text or file online. Instant 128-bit digest in hex, computed in your browser. MD4 Hash Generator Generate the MD4 hash of any text or file online. Instant 128-bit digest in hex, computed in your browser.