Home › Developer Tools › Checksum Calculator

Checksum Calculator

Paste the bytes of a serial or embedded protocol frame as hex, decimal or ASCII text and get every common simple checksum at once, with the one your protocol uses shown large and worked out step by step.

Last updated:

Hex: 01 03 0A, 0x01,0x03 or 01030A. ASCII: use \r \n \t \0 and \xHH for control bytes.

e.g. 1 to leave out an STX or ':' start byte

e.g. leave out an existing checksum or ETX

Enter your values to see the result.
Advertisement
Advertisement

How to use the Checksum Calculator

  1. Choose the input format: hex bytes, ASCII text, decimal bytes or NMEA sentences.
  2. Pick the checksum your protocol uses as the main result.
  3. Paste the data and, if needed, skip framing bytes at the start or end.
  4. Click Calculate (results also update as you type).
  5. Compare the result with your device's value using the byte table and running totals.

Simple checksums compared

ChecksumFormulaSizeTypical use
8-bit sumsum of bytes mod 2561 byteSimple serial devices, Intel HEX uses its two's complement
Two's complement (LRC)(256 − sum mod 256) mod 2561 byteModbus ASCII, Intel HEX records
One's complement0xFF − (sum mod 256)1 byteSome sensor and RC protocols
XOR / BCCb1 ⊕ b2 ⊕ … ⊕ bn1 byteCard readers, PLC and industrial links, many STX…ETX frames
NMEA 0183XOR of characters between $ and *2 hex charsGPS receivers, marine electronics
Fletcher-16two running sums mod 2552 bytesLightweight links where order errors matter
Internet checksumone's complement of 16-bit word sum2 bytesIPv4, ICMP, UDP and TCP headers
Adler-32two sums mod 655214 byteszlib data streams

Worked example: Modbus ASCII LRC

Message bytes 11 03 00 6B 00 03: 0x11 + 0x03 + 0x00 + 0x6B + 0x00 + 0x03 = 0x82. The two's complement is 0x100 − 0x82 = 0x7E, so the ASCII frame is :1103006B00037E followed by CR LF. The receiver adds all bytes including 0x7E and gets 0x00.

Tips for debugging a checksum

  • Most mismatches come from the range: is the start byte (STX, ':' or '$') included? Is the checksum computed before or after escaping or ASCII encoding?
  • For ASCII-hex protocols such as Modbus ASCII, compute over the decoded bytes (11 03 …), not over the characters "1", "1", "0", "3".
  • Two-byte checksums can be sent high byte first or low byte first. If yours looks right but reversed, see the Endianness Converter.
  • If your protocol names a polynomial (0x8005, 0x1021, 0x04C11DB7), it uses a CRC, not a simple checksum.

Frequently asked questions

What is an 8-bit checksum?

Add all the bytes together and keep only the lowest 8 bits (the sum modulo 256). Many protocols send this sum, its two's complement or its one's complement as the last byte of a message.

How is the Modbus ASCII LRC calculated?

Add the bytes of the message (address, function code and data, not the colon or CR LF) modulo 256, then take the two's complement: (256 − sum) mod 256. For 11 03 00 6B 00 03 the sum is 0x82, so the LRC is 0x7E.

What is the difference between LRC and BCC?

Both names are used loosely. BCC (block check character) is usually the XOR of all bytes. LRC can mean that same XOR or, as in Modbus ASCII, the two's complement of the 8-bit sum. Check your protocol document for which one it means.

How do I calculate an NMEA checksum?

XOR the ASCII codes of every character between the $ (or !) and the asterisk, then write the result as two uppercase hex digits after the asterisk, such as *47.

Why do receivers add the checksum to the data?

With a two's complement checksum the sum of all bytes including the checksum is 0 modulo 256; with XOR the XOR of everything is 0; with a one's complement the sum is 0xFF. Testing for that constant is a quick way to check a frame.

Is a simple checksum as good as a CRC?

No. Sums and XOR miss errors such as reordered bytes and some multi-bit errors. A CRC detects far more error patterns, which is why most newer protocols use CRC-16 or CRC-32.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

CRC32 Checksum CalculatorCalculate CRC-32, CRC-32C, CRC-16 and Adler-32 checksums of text or large files.Hex CalculatorHexadecimal + − × ÷ and AND, OR, XOR, NOT, shifts with decimal and binary equivalents.Endianness ConverterSwap byte order of 16, 32 and 64-bit hex values and see big- and little-endian integers and floats.Hash GeneratorGenerate MD5, SHA-1, SHA-256 and SHA-512 hashes of text or files.Password GeneratorCreate strong passwords and passphrases.MD5 Hash GeneratorGenerate MD5 hashes of text, lines or files and verify checksums.SHA-256 Hash GeneratorSHA-256 and HMAC-SHA256 hashes of text, lines or files, in hex or Base64.Base64 Encoder DecoderEncode or decode Base64 text and files, and make data URIs.URL Encoder DecoderPercent-encode or decode URLs, query strings and form data.HTML Entity Encoder / DecoderEscape and unescape HTML entities, named or numeric.Bcrypt Hash Generator & CheckerCreate bcrypt password hashes and check a password against a hash.Binary TranslatorConvert text to binary, hex, octal and back.HMAC GeneratorGenerate and verify HMAC signatures with SHA-256, SHA-512, SHA-1 or MD5.JWT DecoderDecode JSON Web Tokens, read the claims and expiry, and verify HS256 signatures.JWT GeneratorCreate and sign HS256, HS384 or HS512 JSON Web Tokens in your browser and verify them.Password Strength CheckerSee how strong a password really is, how long it takes to crack and how to improve it.Caesar CipherEncode and decode Caesar shift ciphers and crack unknown shifts with a ranked brute force.Vigenère CipherEncrypt and decrypt Vigenère and Autokey ciphers, and crack unknown keys with frequency analysis.Atbash CipherEncode and decode Atbash ciphers (A↔Z, B↔Y) in Latin or Hebrew, with a live letter mapping table.ASCII TableFull ASCII code chart 0–255 in decimal, hex, octal, binary and HTML, with search and copy.Unicode Character LookupFind Unicode characters by name or code point and copy them with UTF-8, HTML and code escapes.Punycode ConverterConvert international domain names, emails and URLs between Unicode and xn-- Punycode, in bulk.JSON Escape / UnescapeEscape text for a JSON string, unescape \n and \" back to text, or stringify a whole object.Binary to HexConvert binary to hex instantly with steps and signed mode.Hex to BinaryConvert hex to binary instantly with steps and signed mode.Binary CalculatorAdd, subtract, multiply, divide, AND, OR, XOR and shift binary numbers with decimal values.Base32 Encoder / DecoderEncode and decode Base32 (RFC 4648), Base32hex, Crockford and z-base-32 from text, hex or files.Base58 Encoder / DecoderEncode and decode Base58 and Base58Check (Bitcoin alphabet) from text or hex, with checksum verification.Unicode Escape / UnescapeConvert text to \uXXXX, \u{...}, \x, &#...; or CSS escapes and decode them back.File Hash CheckerGet MD5, SHA-1, SHA-256 and SHA-512 checksums of files and verify them against a hash.TOTP GeneratorGenerate 2FA one-time codes from a secret key, create otpauth QR codes and verify codes.RSA Key GeneratorGenerate 2048, 3072 or 4096-bit RSA key pairs as PEM, PKCS#1, JWK or OpenSSH, locally.SSL Certificate DecoderDecode PEM SSL/X.509 certificates: subject, issuer, expiry, SANs, key and fingerprints.Text Encryption ToolEncrypt and decrypt text with a password using AES-256-GCM, entirely in your browser.Argon2 Hash GeneratorHash passwords with Argon2id, Argon2i or Argon2d and verify them against an encoded hash.Base64 to PDFDecode a Base64 string to a PDF with preview and download, or encode a PDF to Base64.Bitwise CalculatorCalculate AND, OR, XOR, NOT and bit shifts at 8–64 bits with a bit grid and all bases.CSR GeneratorCreate a certificate signing request (CSR) and private key with SANs, RSA or ECDSA, in your browser.PBKDF2 Hash GeneratorDerive PBKDF2 keys from a password, salt and iteration count with SHA-1, SHA-256 or SHA-512.Protobuf DecoderDecode raw Protocol Buffers hex or Base64 without a schema, or add a .proto for field names.XML Escape / UnescapeEscape & < > " ' for XML text and attributes, unescape entities back, or wrap text in CDATA.Binary Search Tree VisualizerInsert, delete and find in BST, AVL and red-black trees with animated rotations and traversals.MongoDB ObjectId to TimestampDecode a MongoDB ObjectId to its creation date, or build ObjectIds from dates for range queries.PGP Encrypt / DecryptEncrypt, decrypt, sign and verify PGP messages with your armored keys, entirely offline.PGP Key GeneratorGenerate an OpenPGP key pair (Curve25519, NIST ECC or RSA) with passphrase and expiry, offline.Quoted-Printable Encoder / DecoderEncode or decode quoted-printable email text (MIME) with UTF-8 and 76-character soft line breaks.Self-Signed Certificate GeneratorCreate a self-signed SSL certificate and key for localhost or dev servers, as PEM or PFX.SHA-1 Hash GeneratorSHA-1 and HMAC-SHA1 of text or files in hex or Base64, plus Git blob hashes and verify.SHA-512 Hash GeneratorSHA-512 and SHA-384 hashes of text or files in hex or Base64, HMAC and hash verification.SRI Hash GeneratorCreate Subresource Integrity hashes (sha256/384/512) and ready <script> or <link> tags.SSH Key GeneratorGenerate Ed25519 or RSA SSH key pairs in your browser: OpenSSH public key plus private key.String Escape / UnescapeEscape or unescape strings for JavaScript, Java, C#, Python, C, SQL, regex, CSV and shell.UTF-8 Encoder / DecoderConvert text to UTF-8 bytes in hex, decimal, binary, \x or % and decode bytes back to text.UUID Decoder & ValidatorDecode any UUID: version, variant, v1/v6/v7 timestamp and MAC node, plus bulk validation.Base64 to FileDecode Base64 or a data URI to a downloadable file; detects the real file type and previews it.File Encryption ToolEncrypt and decrypt any file with a password using AES-256-GCM, entirely in your browser.Passphrase GeneratorMake strong, memorable diceware passphrases from a 7,776-word list, with entropy in bits.CSR DecoderDecode a PEM certificate signing request: subject, SANs, key size, signature and CA readiness checks.Enigma Machine SimulatorEncrypt and decrypt with a virtual Enigma I, M3 or M4: rotors, rings, plugboard and lampboard.Hex Opacity CalculatorConvert opacity percent to a 2-digit HEX alpha code and full #RRGGBBAA color, with a 0-100% table.Playfair CipherEncrypt and decrypt Playfair ciphers from a keyword, with the 5x5 key square and every digraph step.Pwned Password CheckerCheck if a password appeared in data breaches; only 5 characters of its SHA-1 hash are sent.RSA Encryption ToolEncrypt text with an RSA public key and decrypt it with the private key using RSA-OAEP in your browser.SAML DecoderDecode SAMLRequest and SAMLResponse messages to readable XML, attributes and validity times.SSL Certificate ConverterConvert SSL certificates and keys between PEM, DER, PFX/P12 and P7B in your browser.
See all 65 Encoders, Hashes & Crypto →