CRC-16 Hash Generator

Calculate a CRC-16 checksum locally.

What CRC-16 is

Cyclic Redundancy Check (CRC) codes were developed in 1961 by W. Wesley Peterson as a way to catch transmission errors cheaply, using binary polynomial division instead of arithmetic. CRC-16 is the 16-bit member of that family: it treats your data as one long binary number, divides it by a fixed polynomial, and keeps the remainder as the checksum. This tool produces the specific CRC-16/MODBUS variant — polynomial 0xA001 (the bit-reversed form of 0x8005), register seeded at 0xFFFF, with no final XOR — which is the exact CRC used by the Modbus RTU protocol found throughout industrial and building-automation equipment.

Where CRC-16 is used today

Because it's cheap to compute on very small microcontrollers, CRC-16 remains common in places CRC-32 would be overkill: Modbus serial communication, some Bluetooth and USB packet framing, XMODEM file transfer, and various firmware update checks. It exists purely to catch accidental bit flips from noisy wires or flaky storage — not to stop someone from deliberately editing data.

How to use it

  1. Paste the text or payload you want to checksum into the input box.
  2. Click Generate to compute the 4-digit hex CRC-16 locally.
  3. Copy the result to compare against a value from another device, or paste it into test code that talks to Modbus hardware.

Common questions

Which CRC-16 variant does this tool produce?

CRC-16/MODBUS: polynomial 0xA001, initial value 0xFFFF, no final XOR. It's the variant used by Modbus RTU. Other CRC-16 flavors (CRC-16/CCITT, CRC-16/ARC) use different seeds or polynomials and will not match this output.

How big is a CRC-16 result?

16 bits, shown here as 4 hex digits — small enough to compute cheaply even on tiny embedded hardware, which is why it's still common in serial and industrial protocols.

Is CRC-16 secure against tampering?

No. CRC codes catch accidental transmission errors, not deliberate attacks — it takes very little effort to alter data and produce the same CRC-16. Use HMAC or a SHA-2 hash if you need tamper detection.

CRC-16 vs CRC-32 vs MD5 — which should I use?

CRC-16 for tiny embedded or serial links where every byte and cycle counts. CRC-32 for general file and network integrity checks. MD5 or SHA-256 when you need a much lower collision probability, though never for anything security-critical.