CRC Checksum Calculator

A Cyclic Redundancy Check (CRC) is a widely used error-detecting code that treats data as a large binary polynomial and divides it by a fixed generator polynomial. The remainder of that division is the CRC checksum. Any change to the input data almost certainly changes the checksum, making CRCs effective for detecting accidental corruption during storage or transmission. This calculator computes CRC-8, CRC-16, and CRC-32 checksums for ASCII text input using the standard polynomials defined in IEEE 802.3 and related specifications.

CRC is computed on the UTF-8 byte values of the input
0x00
0x0000
0x00000000
0.00

CRC computation method

CRC-8 polynomial: 0x07 (x^8 + x^2 + x + 1)
CRC-16/IBM polynomial: 0x8005 (reflected: 0xA001)
CRC-32 polynomial: 0x04C11DB7 (reflected: 0xEDB88320, IEEE 802.3)

For each byte of input, the CRC register is XORed with the byte and shifted 8 times. If the low bit (reflected) or high bit (non-reflected) is 1 before each shift, the polynomial is XORed in. The final register value is the CRC. CRC-32 uses an initial value of 0xFFFFFFFF and a final XOR of 0xFFFFFFFF.

Common CRC applications

  • CRC-32 (IEEE 802.3): Ethernet frames, ZIP files, PNG image data chunks.
  • CRC-32C (Castagnoli, 0x1EDC6F41): iSCSI, SCTP, SSE4.2 hardware acceleration.
  • CRC-16/USB: USB protocol error detection.
  • CRC-8/SMBUS: SMBus packet error detection (System Management Bus).
  • CRC-CCITT: X.25, HDLC, Bluetooth link layer.

CRC checksum calculator: frequently asked questions

What is a CRC checksum?

A Cyclic Redundancy Check (CRC) is an error-detecting code. It treats the input data as a binary polynomial and divides it by a fixed generator polynomial, giving a remainder. The remainder is the CRC checksum. If the checksum changes between transmission and receipt, the data was corrupted.

What is the difference between CRC-8, CRC-16, and CRC-32?

The number indicates the degree of the generator polynomial and the size of the checksum in bits. CRC-8 gives an 8-bit (1-byte) checksum, CRC-16 gives 16 bits (2 bytes), and CRC-32 gives 32 bits (4 bytes). Longer CRCs detect a wider range of errors but add more overhead.

What generator polynomial does CRC-32 use?

The most common CRC-32 uses the polynomial 0x04C11DB7 (or reflected form 0xEDB88320). This is standardized in IEEE 802.3 (Ethernet), used in ZIP files, PNG images, and many other formats.

Can a CRC detect all errors?

CRC-32 detects all single-bit errors, all burst errors of length 32 bits or less, and all odd numbers of errors. However, it cannot detect all errors. Approximately 1 in 2^32 random corruptions will produce the same CRC and go undetected. CRCs are error-detecting codes, not error-correcting codes.

Is CRC the same as a cryptographic hash?

No. CRCs are designed for fast error detection in data transmission, not for security. They are not collision-resistant and can be trivially forged. Cryptographic hash functions such as SHA-256 are designed to be collision-resistant and resistant to preimage attacks, making them suitable for security applications.

Official sources

  • IEEE 802.3 Ethernet Standard (CRC-32 polynomial): standards.ieee.org.
  • NIST SP 800-38A Recommendation for Block Cipher Modes of Operation (references integrity checking): csrc.nist.gov.

Reviewed by the CalculatorHub team, edited by James Graham, 15 June 2026. See our methodology.