CRC Checksum Calculator
Enter content, then press Calculate
Enter content, then press Calculate
How to Use
📖 Overview
A cyclic redundancy check is the workhorse error detection used in embedded communication. Run a stream of bytes through a polynomial division and you get an 8, 16 or 32-bit remainder; the receiver recomputes it, and if the two disagree something went wrong on the wire. The catch is that there is no single CRC. Five parameters decide the result: the polynomial, the initial value, whether input bytes are reflected, whether the output is reflected, and what the result is exclusive-ored with. Change any one and the number changes completely. That is why a datasheet saying CRC-16 is not enough: you still need to know whether it means the Modbus variant or the CCITT one. This tool lists the parameters of seven common variants and can compute all of them from one input, so you can compare against whatever your device returned and identify the variant without hunting through tables. Everything is computed locally in the browser, with bit operations treated as unsigned so 32-bit results never come back negative and match what a microcontroller produces. If you are debugging a link and the numbers refuse to agree, the parameter panel is usually where the answer is: compare the polynomial and the initial value against the datasheet first, then the two reflection flags, and only then start suspecting the wiring.
✨ Features
- Seven variants: CRC-8, CRC-8/MAXIM, CRC-16/IBM (Modbus), CRC-16/CCITT-FALSE, CRC-16/XMODEM, CRC-32 and CRC-32C
- One input can produce results for every variant at once, so you can line them up against the value your device returned and work out which one it uses
- Each result appears as hexadecimal, decimal and binary grouped in fours, which makes register values easy to check
- A parameter panel shows the polynomial, initial value, input reflection, output reflection and xor-out value for the selected variant
- Input accepted as plain text or as a hexadecimal byte string, with UTF-8 handling for Chinese text
- Bit operations are unsigned throughout, so 32-bit results are never negative and agree with what the hardware computes
🚀 How to use
- Type the text you want checked, or paste a hexadecimal byte string
- Choose the input format: text or hexadecimal
- Pick a primary variant from the dropdown; its result is highlighted and shown in the statistics panel
- Tick compute-all-variants to get all seven results side by side
- Press Calculate, then copy the hexadecimal value in one click
⚠️ Notes
- The variant has to match: Modbus and CCITT are both called CRC-16 but use different parameters and produce different values, so confirm which one your datasheet means before trusting a result
- Hex input needs an even number of digits: byte strings must have an even length, and non-hex characters are stripped before validation
- CRC is not encryption: it detects transmission errors and offers no protection against tampering, so never use it as a signature or anti-forgery measure
- Byte order is a separate matter: some devices expect the result transmitted low byte first. This tool outputs the value itself, so convert the ordering yourself
- Empty input gives no result: a blank box prompts you to enter content, and editing any option after a run invalidates the result until you press Calculate again