search

Found

info Overview

Compute both the IEEE 802.3 CRC-32 and the Castagnoli CRC-32C from one text or hex input, shown side by side in hex and decimal with the byte length.

📘 How to Use

  1. Paste text or switch to hex byte mode.
  2. Read the IEEE 802.3 and Castagnoli results in hex and decimal.
  3. Match the value against the checksum your protocol or file format expects.

CRC-32 / CRC-32C Checksum Calculator

CRC-32 is computed over the UTF-8 encoded bytes of the text.

CRC-32 (IEEE 802.3)
poly 0xEDB88320
Decimal:
CRC-32C (Castagnoli)
poly 0x82F63B78
Decimal:
Input bytes
0 bytes
Status
Copied!

※ Table-driven implementation (256-entry precomputed table) for both the IEEE 802.3 and Castagnoli polynomials.

※ CRC is an error-detection code, not a cryptographic hash. Use SHA-256 or similar for integrity or signatures.

Article

CRC-32 / CRC-32C Checksum Calculator | Two Polynomials, One Input

Get the IEEE 802.3 CRC-32 and the Castagnoli CRC-32C from a single text or hex input, side by side in hex and decimal. Built for the moment you have a checksum in front of you and need to know which polynomial actually produced it.

💡 About This Tool

Most online CRC tools quietly assume one polynomial and leave you guessing. That is a problem, because "CRC-32" is not one number. The classic IEEE 802.3 variant (reversed polynomial 0xEDB88320) is what zip, gzip, PNG, and Ethernet frames use. Castagnoli's CRC-32C (0x82F63B78) is a different beast entirely, baked into SCTP, iSCSI, Btrfs, and ext4 metadata, partly because modern CPUs can compute it with a dedicated instruction.

When a debugger shows you a stored checksum and your own code disagrees, the usual culprit is a polynomial mismatch. This calculator gives you both at once, so you can match the unknown value against the right one without rebuilding your toolchain. Toggle to Hex bytes mode to feed raw bytes exactly as they appear in a packet capture or hex editor, with 0x prefixes, spaces, commas, and colons all tolerated.

🧐 Frequently Asked Questions

Q. What is the difference between CRC-32 and CRC-32C? A. They use different generator polynomials. IEEE 802.3 CRC-32 uses 0xEDB88320 (reflected) and shows up in zip, gzip, and PNG. CRC-32C uses Castagnoli's 0x82F63B78, which has better error-detection properties and is hardware-accelerated on x86 via the crc32 instruction.

Q. My checksum does not match the one in the file. Why? A. Beyond the polynomial, CRC variants differ in bit reflection, initial value, and final XOR. This tool uses the standard parameters: init 0xFFFFFFFF, input and output reflected, final XOR 0xFFFFFFFF. If a format uses different parameters, the result differs even with the same polynomial.

Q. How can I verify the calculator is correct? A. The check string 123456789 yields 0xCBF43926 for IEEE CRC-32 and 0xE3069283 for CRC-32C. These are the published reference values, so you can confirm the tool before trusting it on your own data.

Q. Why does empty input show 00000000? A. With the standard init and final XOR, the CRC of zero bytes cancels out to 0x00000000. That is the correct result, not a bug.

📚 Fun Facts

CRC-32C was not chosen for SCTP and iSCSI by accident. Guy Castagnoli's 1993 search ranked polynomials by Hamming distance, the smallest number of bit errors that can slip past undetected. His polynomial catches more error patterns at common message lengths than the venerable IEEE one. Years later Intel added an SSE4.2 instruction so that exact polynomial runs in hardware, which is why filesystems written this decade reach for the "C" variant while your zip archive still carries the original.