Hex CRC-32 Calculator
The Hex CRC-32 Calculator runs the standard CRC-32 checksum algorithm — the same one used by ZIP, gzip, and Ethernet — over the bytes you paste into Hex Byte Input. Click Convert and the checksum shows up in CRC-32 Checksum (Hex). Paste EBCDIC hex bytes into the ebcdic to text converter and the Text Output box shows the decoded characters instantly.
How the Hex CRC-32 Calculator Computes a Checksum from Hex Bytes
The Math Behind CRC-32: Polynomial Division and XOR in a Modulo-2 Field
A cyclic redundancy check is, at its core, a division problem. The message you want to check — your hex bytes, treated as one long binary number — is divided by a fixed generator polynomial, and the remainder of that division becomes the checksum. The twist is that CRC division happens in modulo-2 arithmetic, where addition and subtraction both collapse into a single exclusive or (XOR) operation. There is no carrying or borrowing — each step is just a bitwise XOR:
0 XOR 0 => 0 (even => even)
0 XOR 1 => 1 (odd => odd)
1 XOR 0 => 1 (odd => odd)
1 XOR 1 => 0 (even => even)To see the mechanics on a small scale before CRC-32's full 32-bit width, here is a step-by-step XOR long-division example using a short 7-bit message 1101101 divided by an illustrative 5-bit divisor 10011 (which represents the polynomial \(x^4 + x + 1\)):
- Take the leftmost 5 bits of the message:
11011. The leading bit is 1, so XOR against the divisor10011:11011 XOR 10011 = 01000. - Drop the leading zero and bring down the next message bit (
0): the working value is now10000. The leading bit is 1, so XOR against the divisor again:10000 XOR 10011 = 00011. - Drop the leading zero and bring down the final message bit (
1): the working value is now00111. The leading bit is 0, so this step is skipped — there's no XOR when the leading bit is already 0. - No message bits remain. Dropping the leading zero leaves a 4-bit remainder:
0111, which is 7 in decimal — that remainder is the checksum this small example produces.
CRC-32 runs the exact same modulo-2 division idea, just with a 33-bit generator polynomial instead of a 5-bit one, which is why the checksum comes out as 32 bits (4 bytes of hex) rather than a 4-bit remainder like the toy example above. This algebraic structure is what makes CRC-32 so reliable at catching accidental data corruption: it mathematically guarantees detection of every single-bit error, every two-bit error, and any burst error shorter than the polynomial width — exactly the kind of noise introduced by a flaky network link, a scratched disk sector, or a truncated download.
CRC-32/ISO-HDLC (zlib) Parameters: Polynomial, Initial Value, Reflection, and Final XOR
Not every "CRC-32" is the same algorithm — several CRC-32 variants share the 32-bit width but produce different checksums for identical input because they use different parameters. This hex CRC-32 calculator implements the specific variant almost everyone means by "CRC-32": CRC-32/ISO-HDLC, also known as CRC-32/zlib, the checksum used by ZIP, gzip, PNG, and Ethernet. Its defining parameters are:
- Polynomial:
0x04C11DB7in normal form, commonly written as its bit-reflected form0xEDB88320in table-driven implementations. - Initial value:
0xFFFFFFFF— the register starts pre-loaded with all 1s so leading zero bytes still affect the result. - Input reflection: true — each input byte is processed least-significant-bit first.
- Output reflection: true — the final register value is bit-reversed before the last step.
- Final XOR:
0xFFFFFFFF— every bit of the reflected result is inverted to produce the published checksum.
These five parameters are what separate CRC-32/ISO-HDLC from its lesser-known cousins. CRC-32C (also called CRC-32/Castagnoli, used by iSCSI and SCTP) uses a different polynomial, 0x1EDC6F41. CRC-32/BZIP2 and CRC-32/MPEG-2 reuse the same 0x04C11DB7 polynomial but disable input/output reflection. CRC-32/POSIX — the algorithm behind the Unix cksum command — also skips reflection and starts from an initial value of zero instead. If you run the standard ASCII test string "123456789" through each variant you get a different checksum every time, which is why matching the exact parameter set matters when you're trying to reproduce a checksum from another tool or specification. This calculator is fixed to CRC-32/ISO-HDLC/zlib specifically, so it will match the CRC-32 baked into ZIP, gzip, PNG, and Ethernet, but not CRC-32C or the other variants.
Table-Driven Lookup: How Real CRC-32 Implementations Run Fast
No practical CRC-32 implementation repeats the bit-by-bit long division shown above for every byte of real data — that would be far too slow for anything beyond a teaching example. Instead, software precomputes a 256-entry lookup table, one entry for every possible byte value, so that processing each byte of your hex input reduces to a single table lookup and one XOR against the running checksum register. This table-driven approach is what lets a CRC-32 checksum generator process large hex byte strings essentially instantly, and it's the same technique used inside zlib, most ZIP libraries, and hardware CRC engines in Ethernet controllers.

Using the Hex CRC-32 Calculator: Hex Byte Input and Instant Checksum Output
Paste your data as hex bytes into the Hex Byte Input box — for example, 313233343536373839, the hex encoding of the ASCII text "123456789," a well-known CRC-32 test vector. As soon as you type or paste, the tool converts every two hex characters into a byte, runs the CRC-32/ISO-HDLC algorithm over that byte sequence, and displays the result in CRC-32 Checksum (Hex) — no button click required, though a Convert button is available too. For the "123456789" test vector, the correct CRC-32 checksum is cbf43926; if your own CRC-32 code produces that value for the same input, your implementation is correct. As a second worked example, hex-encoding the text "HEX" gives the bytes 48 45 58, which produce the CRC-32 checksum 697667ec. Drop your Base64 string into the base64 to hex converter to decode it into hex output formatted the way you need.
Toggle the Uppercase checkbox if you need the checksum formatted as CBF43926 instead of cbf43926 — useful when matching the casing convention of whatever log file, source code, or specification you're comparing against. Once you have your result, use the Copy button to grab it. Everything runs client-side in your browser using JavaScript, so the hex bytes you paste in are never uploaded anywhere.
Real-World Uses of CRC-32 Checksums: ZIP, gzip, PNG, and Ethernet
CRC-32/ISO-HDLC shows up across a surprising number of everyday file formats and protocols, which is exactly why a dedicated hex CRC-32 calculator is useful for troubleshooting:
- ZIP archives store a CRC-32 checksum for every compressed entry in the archive's central directory, so unzip tools can confirm each file extracted without corruption.
- gzip streams append an 8-byte trailer containing the CRC-32 of the original uncompressed data, letting
gunzipdetect a truncated or corrupted.gzfile. - PNG images compute a CRC-32 over the type and data of every chunk (IHDR, IDAT, and so on) and store it as a 4-byte trailer — a mismatched CRC-32 is often the first sign of a corrupted or hand-edited PNG file.
- Ethernet frames end with a 4-byte Frame Check Sequence computed with the same CRC-32/ISO-HDLC polynomial, letting network hardware silently discard frames damaged in transit.
Because all four of these formats use the identical CRC-32/ISO-HDLC parameters, this calculator can double as a quick sanity check when you're debugging any of them by hand — recompute the checksum for a chunk or entry's raw hex bytes and compare it against the value stored in the file.
CRC-32 vs Cryptographic Hashes: Error Detection, Not Tamper Detection
It's worth being clear about what a CRC-32 checksum is not: it is not a cryptographic hash, and it offers no protection against deliberate tampering. CRC-32 is a 32-bit value, so there are only about 4.3 billion possible checksums — more than enough to catch the kind of random, accidental corruption a CRC-32 is designed for, but far too few (and far too easy to reverse-engineer) to stop someone who deliberately wants to modify data and recompute a matching checksum. If you need tamper-evidence rather than accidental-corruption detection, a cryptographic hash function is the right tool; CRC-32 remains the correct, fast choice for exactly the job ZIP, gzip, PNG, and Ethernet use it for — catching honest data integrity problems.
Related Hex Bitwise and Checksum Tools
CRC-32 is built entirely out of XOR and bit-shift operations, so if you're working through the algorithm by hand or debugging a custom implementation, a few other tools on this site are useful companions. The Hex Bitwise Calculator lets you run AND, OR, and XOR directly on hex values — handy for checking an individual XOR step in a CRC-32 lookup table by hand. The Hex Shift Calculator performs the left/right bit shifts that drive the table-generation algorithm behind every CRC-32 lookup table. And the Hex Two's Complement Calculator is useful more broadly whenever you're working with signed binary representations alongside checksum data.