CRC32 Checksum Calculator

Compute the CRC-32 checksum of text encoded as UTF-8 bytes

Ad placeholder (leaderboard)

The CRC-32 (Cyclic Redundancy Check, 32-bit) is a fast checksum used to detect accidental data corruption. This tool encodes your text as UTF-8 and computes the IEEE 802.3 CRC-32 over those bytes, the same checksum used by zlib, gzip, PNG, ZIP, and Ethernet frames.

How it works

CRC-32 treats the input bytes as the coefficients of a large binary polynomial and divides it (modulo 2) by a fixed generator polynomial, keeping the remainder. The implementation here uses the table-driven reflected method:

crc = 0xFFFFFFFF
for each byte b:
    crc = TABLE[(crc ^ b) & 0xFF] ^ (crc >>> 8)
result = crc ^ 0xFFFFFFFF

TABLE is a 256-entry lookup precomputed from the reflected polynomial 0xEDB88320. The initial value 0xFFFFFFFF and the final XOR with 0xFFFFFFFF are part of the standard IEEE variant, which is why an empty input yields 00000000 and the classic test phrase yields a well-known value.

Tips and notes

  • The well-known test vector "The quick brown fox jumps over the lazy dog" produces the CRC-32 414fa339.
  • CRC-32 is for integrity, not security. A bit-flip in transit is reliably detected, but anyone can craft a different message with the same checksum.
  • If you need CRC-32C (used by iSCSI, ext4, and many storage systems), note it uses a different polynomial and will not match the value here.
  • Encoding matters: the same visible string in UTF-8 versus UTF-16 produces different bytes and therefore a different checksum.
Ad placeholder (rectangle)