CRC and checksums
CRC-8, CRC-16 (Modbus, CCITT, XMODEM and more), CRC-32, CRC-32C, Adler-32, BCC (XOR), LRC and 8-bit sum of hex bytes or text, shown in hex, decimal and binary.
Process locally
Files stay in this browser session. Closing or clearing releases them.
Add text
Type or paste the text to process
Adjust settings
Optional: Algorithm, Input is
Run
Processes in this browser; cancel at any time
About this tool
Calculate a CRC or a simple checksum over hex bytes or text. It is made for serial protocols and embedded work: append the CRC-16 to a Modbus RTU frame, check the BCC or LRC of a device command, or find out which CRC variant a datasheet means by comparing results.
It offers CRC-8 (SMBUS and MAXIM), six CRC-16 variants (ARC, MODBUS, CCITT-FALSE, XMODEM, KERMIT and X-25), CRC-32, CRC-32C, CRC-32/MPEG-2, Adler-32, BCC, LRC and the 8-bit sum. Results show in hex, decimal and binary, with both byte orders for 16- and 32-bit values. Up to 1 MB is processed in your browser without being uploaded.
How to use it
- Type or paste the data, or select Use example to load a Modbus request (01 03 00 00 00 0A).
- Set “Input is” to “Hex bytes” or “Text (UTF-8)”.
- Choose the “Algorithm”; CRC-16/MODBUS is selected by default.
- Select Run, then preview checksum.txt and download it if you need it.
Formats and limits
- Input
- Text
- Output
- Plain text
- Size limit
- 1 MB
- Settings
- Algorithm; Input is (Hex bytes, Text)
- Privacy
- Files stay in the current browser session. No file bytes are uploaded.
- Price
- Free, no sign-up
Common questions
Which byte order do I append for Modbus RTU?
Modbus RTU sends the CRC low byte first, so use the “Bytes, low first” line. For the example 01 03 00 00 00 0A the CRC is CDC5, which is appended as C5 CD.
Why do CRC-16 results from different tools disagree?
“CRC-16” names a family of variants that differ in polynomial, initial value, bit reflection and final XOR. ARC and MODBUS, for example, share the polynomial 0x8005 but start from 0x0000 and 0xFFFF. Try the variants here until one matches a frame whose CRC you know.
How can the hex input be written?
As pairs of hex digits, with or without spaces, commas, colons or dashes between them; 0x and \x prefixes are removed. An odd number of digits is rejected.
Why does the result change when I add a line break?
With “Text (UTF-8)” every byte counts, including spaces and line breaks, and a Chinese character is 3 bytes. Switch to “Hex bytes” when you want to enter exact byte values.
How are LRC, BCC and the 8-bit sum calculated?
LRC is the two’s complement of the 8-bit sum of all bytes, the check Modbus ASCII uses. BCC is the XOR of all bytes, and the 8-bit sum keeps only the lowest byte of the total.
Related tools
File checksums
MD5, SHA-1, SHA-256, SHA-512, SHA3-256, SM3, BLAKE3, CRC-32 or xxHash64 of up to 50 files of any type, read as a stream so large files work.
RSA and SM2 encryption and signatures
Encrypt, decrypt, sign or verify text with an RSA key (PEM: PKCS #1, PKCS #8, public key or certificate) or an SM2 key (hex or PEM). Keys stay in the browser and are never saved with workflows.
Caesar cipher and Morse code
Encrypt or decrypt with the Caesar cipher (any shift), ROT13, ROT47 or Atbash, or encode and decode international Morse code.
Symmetric encryption (AES, SM4, DES)
Encrypt or decrypt text with AES (CBC, ECB, CTR, CFB, OFB or GCM), SM4, DES, Triple DES, Blowfish, RC2, RC5, RC6, RC4, Rabbit or XOR. The key is a separate input and is never saved with workflows.
Key pair generator
Generate RSA, ECDSA (P-256, P-384, P-521), Ed25519 or SM2 key pairs as PEM in PKCS #8 or traditional form, for JWT, TLS or encryption tests.
Hash text (MD5, SHA, SM3)
MD5, SHA-1, SHA-2, SHA-3, Keccak, RIPEMD-128/160/256/320, SM3, BLAKE2 and BLAKE3 digests of text, hex or Base64 input, optionally line by line.