CRC32 Calculator
Calculate CRC-32/ISO-HDLC from UTF-8 text or explicit hexadecimal bytes with fixed parameters and an eight-digit result.
Privacy: your files never leave your device. All processing happens locally in your browser.
How to use
- 1.Identify the required CRC variant and byte range; this page implements CRC-32/ISO-HDLC with check value cbf43926 for 123456789.
- 2.Choose UTF-8 text or hexadecimal bytes, enter the exact payload, and calculate.
- 3.Compare all eight digits with the expected value and copy the result; use cryptographic authentication when hostile modification matters.
About CRC32 Calculator
CRC32 Calculator computes the CRC-32/ISO-HDLC check value used by gzip, ZIP, PNG and many other formats. Choose UTF-8 text or hexadecimal bytes, enter the payload, and receive an eight-digit lowercase hexadecimal result. Calculation happens in the browser, input is not uploaded, and the copy action copies only the exact 32-bit value.
CRC is a cyclic redundancy check designed to detect common accidental changes in data. This implementation uses width 32, reflected polynomial 0xEDB88320, initial register 0xFFFFFFFF, reflected byte processing, and final XOR 0xFFFFFFFF. Those parameters produce cbf43926 for the ASCII bytes of 123456789, the standard check value used to distinguish this CRC variant from other 32-bit formulas.
The algorithm builds a 256-entry table from the reflected polynomial. For every input byte, it XORs the byte with the low register octet, looks up the corresponding table remainder, and combines it with the register shifted right by eight bits. The register is complemented at the end and formatted with leading zeros. This follows the practical sample method in RFC 1952 rather than relying on browser-specific number formatting.
In text mode, the string is encoded as UTF-8 before calculation. ASCII characters contribute one byte, while many accented letters, CJK characters and emoji contribute multiple bytes. A result calculated over UTF-16 code units, a legacy character set, normalized text, or a different newline convention will differ. When a protocol gives exact bytes, use hexadecimal mode instead of retyping them as visible text.
Hex mode removes whitespace between byte pairs but otherwise requires an even number of hexadecimal digits. Each two digits become one byte. Prefixes such as 0x, separators other than whitespace, comments and odd trailing nibbles are rejected. Leading 00 bytes are preserved and affect the result. Confirm whether the target specification includes headers, length fields, delimiters or a stored checksum field in the covered range.
CRC-32 is not encryption, a cryptographic hash, a message authentication code, a digital signature or proof of origin. It is linear and easy to manipulate intentionally. Do not use it to verify untrusted software, authorize commands, protect credentials or establish that a file came from a trusted publisher. Use a cryptographic digest and authenticated distribution channel for adversarial integrity.
Different systems use names such as CRC32, CRC-32C, Castagnoli, Koopman, MPEG-2, BZIP2 and JAMCRC for formulas with different polynomials or initial and final transformations. This page implements only CRC-32/ISO-HDLC. If the expected check for 123456789 is not cbf43926, the other system likely uses a different variant or a different byte range.
Input is limited to 5,000,000 bytes so table-driven processing remains responsive. Output is never silently truncated, the value is treated as unsigned, and eight hexadecimal digits are always displayed. Empty programmatic input has CRC 00000000, although the interface asks for data so accidental empty clicks do not look like a meaningful verification.
Eight external check strings cover empty input, short messages, the common message digest and alphabet suites, the standard numeric check, and the quick-brown-fox sentence. A Python zlib cross-check is used for the multibyte UTF-8 boundary. These values prove the declared variant and byte handling rather than merely showing that an encoder agrees with its own decoder.
Use the calculator by first identifying the exact CRC variant and covered byte sequence from the governing format. Select text only when UTF-8 is explicitly correct; otherwise paste bytes as hex. Compare the full eight digits including leading zeros, and treat a match as evidence of accidental-error consistency only, not security authenticity.
Methodology & sources
A 256-entry table is generated with reflected polynomial 0xEDB88320. The register begins at 0xFFFFFFFF, processes each byte least-significant bit first, and is XORed with 0xFFFFFFFF before eight-digit hex formatting.
Frequently asked questions
Related tools
- Checksum CalculatorCalculate explicit XOR-8 BCC, Modbus ASCII two's-complement LRC, and byte-sum modulo 256 values from UTF-8 text or hex bytes.
- Base64 to Hex ConverterConvert canonical padded RFC 4648 Base64 into exact lowercase hexadecimal bytes or turn strict hexadecimal bytes back into Base64.
- Gzip Compress & DecompressCompress UTF-8 text into Base64-wrapped RFC 1952 gzip bytes or decompress gzip Base64 back to strictly valid UTF-8 text.
- Text To HEXEncode text into exact UTF-8 hexadecimal with continuous, spaced, or 0x-prefixed output and explicit Unicode replacement warnings.
- AES Encryption OnlineEncrypt text into a portable authenticated AES-256-GCM JSON package or decrypt a package with its password entirely in your browser.
- ASCII ConverterConvert standard 7-bit ASCII text to decimal codes or decode decimal codes back to exact ASCII characters locally.