CRC32 Checksum Calculator
Calculate CRC-32, CRC-32C, BZIP2, MPEG-2, POSIX cksum and other CRC-32 variants for text, bytes or files, or define custom parameters.
Tool guide
What this tool does
CRC32 Checksum Calculator implements twelve catalogued CRC-32 variants and fully custom polynomials for text, hex or Base64 bytes and large files. Results can be shown as hex, decimal, signed integers or little-endian bytes, compared across variants and exported as an SFV file.
A cyclic redundancy check divides your data, treated as a long binary number, by a fixed polynomial and keeps the 32-bit remainder. It catches the burst errors that occur on cables, disks and radio links very reliably, which is why ZIP, PNG, gzip and Ethernet frames all carry a CRC-32. The trouble is that “CRC-32” means different things in different places: the same polynomial with another start value or bit order gives a completely different number.
This calculator follows the parameter model of the RevEng CRC catalogue: polynomial, initial value, input and output reflection, and final XOR. It includes the common ZIP variant, CRC-32C (Castagnoli) used by iSCSI and ext4, BZIP2, MPEG-2, CKSUM and the exact output of the Unix cksum command, AUTOSAR, CRC-32Q and others, plus a custom mode. Every variant shows its published check value for the ASCII string 123456789 so you can confirm you picked the right one. Files are streamed locally.
How to use CRC32 Checksum Calculator
- Choose Text or Files as the input source.
- Pick the CRC variant, or Custom parameters to enter a polynomial, initial value and final XOR in hex.
- For text, set “Input is” to Hex bytes when you have raw bytes such as a packet capture.
- Select the Output format: hex, 0x-prefixed, unsigned or signed decimal, or little-endian bytes.
- Switch on Compare all variants to see every catalogued CRC side by side.
- Paste a value into “Compare with expected CRC”, then copy the result or download an SFV file for files.
Tips for better results
- Load the sample “123456789”: standard CRC-32 must give CBF43926. If your code gives something else, compare all variants to find which one it implements.
- JavaScript and Java libraries often print CRC-32 as a signed integer, for example -873187034 for CBF43926. Use the signed output to match.
- Microcontrollers store the CRC in memory little-endian, so the bytes appear reversed in a hex dump.
- The cksum command adds the file length to the calculation, which is why it differs from the plain CRC-32/CKSUM variant.
Common use cases
- Checking the CRC stored in a ZIP or PNG chunk while debugging a file parser.
- Matching the checksum produced by embedded firmware or a hardware CRC unit.
- Verifying downloads against an SFV file from an archive or mirror.
- Generating checksums for a serial protocol or data-logging format.
Common mistakes to avoid
- Assuming every CRC-32 is the ZIP variant. Storage protocols mostly use CRC-32C, and MPEG and STM32 hardware use non-reflected variants.
- Using a CRC to detect deliberate tampering. Anyone can change data and fix up the CRC in microseconds.
- Hashing the hex characters of a byte dump as text instead of selecting Hex bytes.
Frequently asked questions
What is the difference between CRC-32 and CRC-32C?
They use different polynomials: 0x04C11DB7 for CRC-32 and 0x1EDC6F41 for CRC-32C. CRC-32C has better error detection for some message lengths and is accelerated by a dedicated instruction on modern x86 and ARM processors.
Why does my CRC differ from another calculator?
Usually a different variant (start value, reflection or final XOR), a hidden newline in the text, or the result displayed as signed decimal or in reversed byte order.
How reliable is CRC-32 at catching errors?
It detects every burst error of 32 bits or fewer and misses a random corruption with a probability of about 1 in 4.3 billion.
Can I calculate CRC-16 or CRC-64?
This tool focuses on 32-bit CRCs. CRC-64/XZ is available in the All Hashes Generator.
Feedback & suggestions
Help us improve CRC32 Checksum Calculator. We read every message.