Hash & Crypto Helpers

CRC calculatorMatch the bytes and the model

Choose the exact model and input format, then calculate. Each result keeps its own parameters and byte order.

CRC calculator

Text or bytes

Checksum result

Calculate to inspect a checksum; empty text is valid.

Text and file contents are processed in your browser.

Options
Width (bits)
32
Polynomial (hex)
04C11DB7
Initial value (hex)
FFFFFFFF
Reflect input bits
Yes
Reflect output bits
Yes
Final XOR (hex)
FFFFFFFF

Custom CRC uses the normal/MSB polynomial with its highest term omitted. Adler-32 has fixed parameters.

Enter 4 or 8 hex digits as a number; outer whitespace and 0x are allowed. Do not paste little-endian bytes.

Text: 1,000,000 UTF-16 units and 1 MiB decoded bytes. One file: 2 GiB, read in 1 MiB chunks.

Calculate to inspect a checksum; empty text is valid.

A CRC calculator is useful when a device reply disagrees with your test fixture. The label CRC16 alone is not enough: the polynomial, initial register, reflections and final XOR all contribute to the result.

Start with a known message before checking a captured packet. Text that looks like hexadecimal is still text until you choose Hex bytes; the byte sequence, including its line endings, determines the checksum.

Why use this CRC calculator?

A value without parameters is incomplete

This CRC calculator keeps the exact model beside its result. ARC and MODBUS share a polynomial but start from different registers; recording the name and all six parameters makes the comparison reproducible.

One byte sequence branches into different parameter models and produces different checksum patterns.

One file, one continuous checksum

File chunks update the same running state in order. Only the final checksum is exported, so changing the read boundary does not change the file result. Progress and cancellation remain available while the Worker processes it.

Consecutive file chunks pass through one running accumulator before producing a single final checksum.

Resolve a mismatch in three checks

01

Read the complete model name

Select CRC-32/ISO-HDLC for the usual ZIP-style CRC-32 checksum. CRC-32C and MPEG-2 are separate presets. For custom CRC, copy the normal polynomial, init, RefIn, RefOut and XorOut from the protocol specification.

02

Check the input interpretation

Use Hex bytes for 31 32 33 and UTF-8 text for actual characters. Whitespace between complete hex bytes is ignored; whitespace in text is included. For another character encoding, supply the original file or its hex bytes.

03

Compare the number before its byte order

The standard 123456789 example should match Check. MODBUS gives 4B37 as a number and 37 4B as little-endian bytes. Enter 4B37 in the expected field. Ctrl/Cmd+Enter recalculates after edits.

Model parameters, byte formats and streaming

Eight named presets

The CRC-16 calculator includes ARC, MODBUS, IBM-3740 and XMODEM. The 32-bit group includes ISO-HDLC, Castagnoli/CRC-32C and MPEG-2; Adler-32 is a separate checksum family.

Independent bit reflections

Custom 16- and 32-bit models let you change input and output reflection separately. These switches reverse bits; they do not select the order in which checksum bytes are transmitted.

A defined Adler-32 checksum

Adler-32 starts S1 at 1 and S2 at 0, reducing both sums modulo 65521. The empty input therefore yields 00000001. CRC-only polynomial and XOR controls are not applied to this algorithm.

A report with the calculation context

Download JSON containing the selected model, complete numeric parameters, input mode, byte count, expected value and comparison. HEX, decimal, binary and both byte orders describe the same final number; source contents are excluded.

Exact bytes and deliberate limits

No byte repair or frame parsing
Hex input accepts complete pairs and ASCII whitespace, with no 0x prefixes, commas or comments. Odd half bytes are rejected rather than padded. Remove a protocol frame’s CRC yourself if the checksum should exclude it.
Explicit size budgets
Text and hex source are capped at 1,000,000 UTF-16 units, and decoded input at 1 MiB. A single file can be up to 2 GiB and is read in 1 MiB chunks. Empty strings and empty files have valid results.
No silent text normalization
UTF-8 text retains spaces, BOM characters and line endings present in the field. Unpaired surrogates are rejected. File mode uses raw bytes without decoding; it does not unpack archives or convert their contents.
Only the selected model
No automatic model detection, polynomial recovery, CRC8/64, code generation, CRC patching or batch directory scanning is performed. Editing any parameter cancels pending work and disables export until the next calculation.
Error detection is not authentication
CRC and Adler checksums detect many accidental changes, but collisions are possible and deliberate changes can preserve a checksum. A match neither identifies the sender nor repairs damaged data; use a suitable cryptographic mechanism for those security tasks.

CRC calculator questions

Why do two CRC calculators return different values?

First compare the exact bytes, then width, polynomial, init, RefIn, RefOut and XorOut. Also check whether the other display is a number or reversed byte sequence. A trailing newline is enough to change an otherwise correct result.

What is the difference between CRC-32 and CRC-32C?

Both produce 32 bits, but ISO-HDLC uses polynomial 04C11DB7 while CRC-32C uses 1EDC6F41. For 123456789 their checks are CBF43926 and E3069283. Select the one required by your format; they are not interchangeable.

Is CRC-32 the same as MD5 or SHA-256?

No. CRC is designed for accidental transmission or storage errors. MD5 and SHA-256 belong to cryptographic hash families, although MD5 is unsuitable for modern collision-resistant uses. A plain digest also does not authenticate its source.

Which CRC-32 variant does this tool use?

The default is CRC-32/ISO-HDLC: polynomial 04C11DB7, init and XorOut FFFFFFFF, both reflections enabled. This CRC calculator also provides CRC-32C, MPEG-2 and custom 32-bit parameters.

What's the difference between CRC-16/CCITT-FALSE and CRC-16/MODBUS?

IBM-3740, also called CCITT-FALSE, uses polynomial 1021, init FFFF and no reflection. MODBUS uses 8005, init FFFF and both reflections. XMODEM uses 1021 with init 0000; it is a different model from CCITT-FALSE.

Still have a question?

Return to the CRC calculator

Use the CRC calculator with a known fixture, then change one parameter at a time and save the report for the value you verified.