Guide
Calculating CRC checksums and choosing the right variant
A cyclic redundancy check, or CRC, is a short number computed from a block of data. Send the data with its CRC, recompute on arrival, and a mismatch tells you that something changed in transit. CRCs sit inside Ethernet frames, ZIP and PNG files, USB packets, Modbus messages and bootloaders. The difficulty is that “CRC-16” is not one algorithm: dozens of variants share the name. This calculator lets you pick the exact variant, or define your own.
What defines a CRC
Five numbers decide the output. The width is the number of bits in the result: 8, 16, 32 or 64. The polynomial is the divisor used in the bitwise long division that the CRC performs. The initial value is the register’s starting content. Two reflection switches say whether bytes are fed least significant bit first and whether the result is reversed at the end. A final XOR value is applied last. Change any one of them and you have a different algorithm, even if the polynomial is the same.
Checking a variant with 123456789
The industry convention for testing a CRC is to calculate it over the nine ASCII characters 123456789; the result is the algorithm’s check value. The Sample button loads that string. For CRC-32, the one used by Ethernet, ZIP, PNG and gzip, the page shows cbf43926, which is 3421780262 in decimal and the bytes cb f4 39 26. Switch to CRC-16/MODBUS and the check value is 4B37; CRC-16/CCITT-FALSE gives 29B1, CRC-16/XMODEM gives 31C3, CRC-32C (Castagnoli, used by iSCSI and ext4) gives E3069283. If your device or library produces something else for the same string, you are using a different variant or different parameters.
Choosing the algorithm
The drop-down lists each model with its common uses, such as “Modbus RTU”, “XMODEM, ZMODEM, many bootloaders”, “Ethernet, ZIP, PNG, gzip, zlib” and “xz and 7-Zip archives” for CRC-64/XZ. When a specification says only “CRC-16”, look for the polynomial, written like 0x1021 or 0x8005, and for the initial value and reflection, then match them to a named model or enter them in the custom tab. The option that lists every standard CRC for your data is the fastest way to find which one equals a value you already have.
Input formats
Data can be typed as text, pasted as hex bytes, given as Base64, or opened as a file. Text is encoded as UTF-8 before the calculation, which matters for non-ASCII characters: the CRC of é covers two bytes, not one. For frames from a protocol, use hex so you control each byte.
Limits
A CRC finds accidental errors very well, but it is not a security tool. It is linear, so anyone can change data and adjust a few bytes to restore the same CRC. For integrity against an attacker use a cryptographic hash or an HMAC. The page calculates one block at a time and does not split or reassemble protocol frames for you.
Related tools
- Adler-32 and Fletcher Calculator covers two other checksum families.
- IPv4 Checksum Calculator computes the Internet checksum used in IP headers.
- Hash Generator provides cryptographic hashes for security uses.
- XOR Calculator is useful when a protocol combines bytes with XOR.
Checked against the current version of the CRC Calculator on .

