CRC-8 Checksum Calculator

Compute the 8-bit CRC checksum of any text or hex bytes

Free CRC-8 checksum calculator that computes the standard 8-bit CRC (polynomial 0x07, CRC-8/SMBUS) of text or raw hex bytes, in hex and decimal. Runs entirely in your browser in pure JavaScript; nothing is uploaded. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

Which CRC-8 variant does this use?

It uses CRC-8/SMBUS: polynomial 0x07, initial value 0x00, no input or output reflection, and no final XOR. This is the most common 'plain' CRC-8, used by SMBus and many sensor and microcontroller protocols.

This tool computes an 8-bit CRC checksum of any text or raw hex bytes and shows it in both hexadecimal and decimal, updating live. CRC-8 is widely used in low-level protocols — SMBus, 1-Wire sensors, and many embedded packets — to detect accidental corruption of short messages.

How it works

CRC-8 treats the input as a polynomial over GF(2) and computes the remainder when divided by the generator polynomial 0x07 (x^8 + x^2 + x + 1). This implementation precomputes a 256-entry lookup table from the polynomial, then processes the data one byte at a time: starting from the initial value 0x00, each input byte is XORed into the running CRC and the result indexes the table. Because this variant uses no bit reflection and no final XOR, the table is built in the straightforward most-significant-bit-first direction.

Where CRC-8 is used

CRC-8 is found everywhere that short, low-overhead error checking is needed in embedded and industrial systems:

  • SMBus (System Management Bus) — the protocol that lets a motherboard communicate with sensors, battery management ICs, and power management chips uses CRC-8/SMBUS on every packet. This is the reference variant this tool implements.
  • 1-Wire protocol (Dallas/Maxim) — temperature sensors like the DS18B20 use a different CRC-8 variant (polynomial 0x31, reflected) to validate ROM codes and measurement packets over a single-wire interface.
  • CAN bus and automotive ECUs — some CAN message payloads and configuration frames include CRC-8 variants for lightweight integrity protection.
  • MPEG-2 and DVB — an 8-bit CRC appears in transport stream section headers.
  • Many I2C sensor ICs — humidity and pressure sensors from major manufacturers include a CRC-8 byte in their multi-byte measurement responses.

Because CRC-8 is only 8 bits wide, it has 256 possible values and will not detect all possible error patterns — the probability of a random error being missed is roughly 1 in 256. For longer messages or higher reliability requirements, use CRC-16 or CRC-32 instead.

CRC-8 variants — why they differ

Unlike CRC-32, where one variant dominates, CRC-8 has many variants in practical use, and they produce completely different results for the same data:

VariantPolynomialInitReflectCheck (123456789)Used in
CRC-8/SMBUS0x070x00No0xF4SMBus, general embedded
CRC-8/MAXIM (1-Wire)0x310x00Yes0xA1DS18B20, 1-Wire devices
CRC-8/DARC0x390x00Yes0x15DARC broadcast data
CRC-8/DVB-S20xD50x00No0xBCDigital Video Broadcast

Always confirm which variant your hardware or protocol specification uses before comparing values. Matching the check value against your known-good test vector is the fastest way to confirm you have the right one.

Example and notes

The canonical CRC check string 123456789 produces 0xF4 with this CRC-8/SMBUS variant, so you can use it to confirm the calculator is correct. Note that other CRC-8 variants (such as CRC-8/MAXIM or CRC-8/DARC) use different polynomials, reflection, or initial values and will give different results.

CRC-8 detects accidental errors only — it is not cryptographic and is easy to forge. Use it for quick integrity checks on short data, never for security. Everything is computed in pure JavaScript in your browser; nothing is uploaded.