CRC Calculator
Calculate various CRC checksums with text, hexadecimal, and file input support
Enter UTF-8 text, will be converted to bytes
Click to select file or drag and drop here
Result
All CRC Algorithm Results
About CRC Algorithm
Cyclic Redundancy Check (CRC) is a robust error-detecting code commonly used in digital networks and storage devices to detect accidental changes to raw data. Blocks of data entering these systems get a short check value attached, based on the remainder of a polynomial division of their contents.
On retrieval, the calculation is repeated and, in the event the check values do not match, corrective action can be taken against data corruption. CRC is designed to be easy to implement in binary hardware, easy to analyze mathematically, and particularly good at detecting common errors caused by noise in transmission channels.
Supported CRC Profiles
This tool implements a wide range of standard CRC algorithms used in industrial and network protocols. Each variant is defined by its polynomial, initial value, XOR output, and reflection properties.
| Algorithm | Width | Polynomial | Usage |
|---|---|---|---|
| CRC-8 | 8 bit | 0x07 | Simple data check, sensors |
| CRC-16/Modbus | 16 bit | 0x8005 | Modbus protocol, industrial |
| CRC-16/CCITT | 16 bit | 0x1021 | X.25, HDLC, Bluetooth |
| CRC-32 | 32 bit | 0x04C11DB7 | ZIP, Ethernet, PNG |
| CRC-32C | 32 bit | 0x1EDC6F41 | iSCSI, SCTP, Btrfs |
| CRC-64/ECMA | 64 bit | 0x42F0E1EBA9EA3693 | ECMA-182, XZ compression |
Common Applications
Frequently Asked Questions
What is CRC and how does it differ from a cryptographic hash?
CRC (Cyclic Redundancy Check) is a checksum algorithm designed to detect accidental bit errors during data transmission or storage. Unlike cryptographic hashes such as SHA-256, CRC is not designed to resist intentional tampering — an attacker can craft data that produces any target CRC value. Use CRC for error detection in communication protocols; use a cryptographic hash for integrity verification where security matters.
Which CRC variant should I choose for my use case?
CRC-32 (ISO 3309) is widely used in Ethernet, ZIP, and PNG files. CRC-16/MODBUS is standard for industrial protocols. CRC-16/CCITT fits serial communication. CRC-8 works for short messages in embedded systems. When a protocol specification defines a specific polynomial and initial value, always match those exactly.
Why does my CRC result differ from the expected value?
CRC results depend on four parameters: polynomial, initial value, input/output reflection, and XOR-out. A mismatch in any one of them produces a different result. Also check whether the input is being encoded as UTF-8, ASCII, or raw bytes — the same text string can yield different byte sequences and thus different CRC values.
What is the difference between CRC-16/MODBUS and CRC-16/CCITT?
Both use 16-bit CRCs with different polynomials and initial values. CRC-16/MODBUS uses polynomial 0x8005, initial value 0xFFFF, with reflected input and output. CRC-16/CCITT (also called CRC-CCITT or CRC-16-IBM) uses polynomial 0x1021, initial value 0xFFFF. These produce completely different outputs for the same data.
Can I compute CRC for a binary file, not just text?
Yes — paste the hex bytes of your binary data using the Hex input format. The tool processes the raw byte values regardless of whether they represent printable characters. For very large binary files, command-line tools like cksum or Python's binascii.crc32() are more practical.
Related Tools
MD5/MD4 Hash Generator
Generate MD5 and MD4 hash values for text or files with multiple output formats
SHA Hash Generator
Online SHA hash generator supporting SHA-1, SHA-256, SHA-384, SHA-512 algorithms
Adler-32 Checksum Calculator
Calculate Adler-32 checksums for text and files, fast checksum used in zlib/gzip compression
HMAC Generator
Generate HMAC authentication codes with MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3, and RIPEMD-160 algorithms
Base Converter
Convert between binary, octal, decimal, and hexadecimal number systems with custom base support (2-36)