CRC-16/CCITT-FALSE Checksum
Calculate the CRC-16/CCITT-FALSE checksum of UTF-8 text using polynomial 0x1021 and initial value 0xFFFF.
Description
Calculate CRC-16/CCITT-FALSE over UTF-8 text with polynomial 0x1021, initial value 0xFFFF, no reflection, and no final XOR.
CRC-16/CCITT-FALSE is one precisely parameterized member of the CRC family. Naming the complete model matters because several incompatible 16-bit CRCs use the same 0x1021 polynomial. This tool converts text to UTF-8 bytes and returns the four-digit uppercase hexadecimal remainder.1
When to use CRC-16/CCITT-FALSE Checksum
Use this checksum for devices, frames, files, or published vectors that explicitly require CRC-16/CCITT-FALSE. The check value for the ASCII string “123456789” is 29B1, which is useful for confirming compatible parameters.
How CRC-16/CCITT-FALSE Checksum works
How the CRC-16/CCITT-FALSE function processes input
- Encode the text as UTF-8 bytes.
- Initialize the 16-bit remainder to 0xFFFF.
- Feed each byte through eight polynomial-division shifts using 0x1021.
- Format the final register as four uppercase hexadecimal digits.
Limitations and assumptions
- A CRC detects common accidental changes but is not collision-resistant against an attacker.
- CRC variants with the same width or polynomial can still differ in initialization, reflection, augmentation, and final XOR.
- Text is checksummed as UTF-8; a device that checks raw bytes in another encoding can return a different value.
Alternative or Complementary approaches
Use the exact CRC model named by the protocol. For malicious modification, add an authenticated construction such as HMAC or a digital signature rather than substituting a CRC.
References
-
Encoding Standard — WHATWG
-
Catalogue of parametrised CRC algorithms — CRC RevEng
Similar or alternative tools
- CRC-32 Checksum
Calculate the common 32-bit ISO-HDLC CRC.
- Adler-32 Checksum
Calculate the two-sum checksum used by zlib.
- SHA-256 Hash Generator
Use a cryptographic digest where collision resistance matters.