Overview
Compute a CRC-16 checksum of typed text using one of three well-documented, precisely-specified variants: CRC-16/ARC (used by ARC/LHA archives and some Modbus-style protocols, with reflected input and output), CRC-16/CCITT-FALSE (a common CCITT-derived variant used in firmware and protocol checksums, non-reflected), and CRC-16/XMODEM (used by the classic XMODEM file transfer protocol, non-reflected with a zero initial value). Each variant uses its own exact polynomial, initial value, input/output reflection, and XOR-out parameters, and this tool clearly labels which variant is selected and shows those parameters alongside the result, since getting even one of them wrong silently produces a wrong-but-plausible-looking checksum. Like CRC-32, CRC-16 is explicitly a checksum for catching accidental data corruption - a flipped bit, a truncated transfer, a bad disk sector - not a cryptographic hash: it offers no resistance to a deliberate attacker constructing different data with the same checksum, so it should never be used for passwords, digital signatures, or protecting data against intentional tampering. Runs entirely client-side.
Best for: Matching a CRC-16 checksum embedded in a legacy protocol or file format
How to use this tool
- Choose a variant. Pick CRC-16/ARC, CRC-16/CCITT-FALSE, or CRC-16/XMODEM, each with its own exact parameters shown below the result.
- Enter text. The checksum recalculates instantly as you type.
- Copy the result. Copy the 4-digit hex checksum for comparison against a known value.
Frequently asked questions
Whichever one the system you're matching against specifies - CRC-16 variants are not interchangeable even though they share the same 16-bit output size, because each uses a different polynomial, initial value, and input/output reflection. Check the target protocol or file format's documentation for the exact variant name (ARC, CCITT-FALSE, XMODEM, or another), then select the matching one here.
No - CRC-16 (like CRC-32) is designed purely for detecting accidental corruption, not for security. It has no resistance to a deliberate attacker constructing different data with the same checksum, and 16 bits of output makes accidental collisions far more likely than a cryptographic hash. Use a proper hash function such as SHA-256 (see Hash Generator) for anything where intentional tampering is a concern.
Each variant's polynomial, initial value, reflection settings, and XOR-out value were checked against the standard CRC RevEng catalogue and verified by computing the CRC of the ASCII test string "123456789" and confirming it matches that variant's published "check" value (0xBB3D for ARC, 0x29B1 for CCITT-FALSE, 0x31C3 for XMODEM).