Tool to quickly calculate or verify data integrity with CRC-32, ideal for detecting transmission errors and ensuring reliability.
CRC-32 - dCode
Tag(s) : Checksum
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
CRC-32 (Cyclic Redundancy Check, 32 bits) is a data integrity verification method that uses a mathematical algorithm to generate a fingerprint from binary data. This fingerprint is used to detect accidental errors during data storage or transmission.
The operation of the CRC-32 is based on the operation of binary polynomial division by treating the data as a large binary polynomial.
Example: The binary sequence 1101 can be represented by the polynomial $ 1 \times x^3 + 1 \times x^2 + 0 \times x^1 + 1 \times x^0 = x^3 + x^2 + x^0 $ (where x corresponds to the position of the bits at 1, starting with 0 on the right).
The CRC then relies on a predefined binary polynomial, called the generator polynomial (or divisor). For CRC-32, the standard generator polynomial is 04C11DB7 (hexadecimal) or 100110000010001110110110111 (binary) or the polynomial of degree 32 $ x^{32} + x{26} + x^{23} + x^{22} + x^{16} + x^{12} + x^{11} + x^{10} + x^8 + x^7 + x^5 + x^4 + x^2 + x^1 + x^0 $.
Binary polynomial division has a remainder (which is of a length less than that of the generator polynomial). For CRC-32, the remainder will be a block of 32 bits. It is this sequence of 32 bits that constitutes the CRC-32 code.
CRC-32 is lightweight and fast, making it an excellent choice for detecting errors in transmitted or stored data. While it does not prevent or correct errors, it can identify them with high accuracy. CRC-32 is widely used in network communications, storage systems, some file formats (such as ZIP or PNG), and is recommended in environments that require rapid validation of data integrity.
CRC-32 is not collision-proof; two different sets of data can produce the same checksum, although this is rare.
A CRC-32 fingerprint is usually represented by 8 hexadecimal characters (or 32 binary bits).
When stored, they can be displayed as a numeric value between 0 and 4294967295.
CRC32C (Cyclic Redundancy Check 32 bits Castagnoli) is a variant of CRC-32 that uses a different generator polynomial to calculate the checksum. CRC32-C is based on the generator polynomial 1EDC6F41 (hexadecimal).
This evolution gives it better error detection performance than the standard CRC32 that it tends to replace.
It is crucial to note that CRC32 and CRC32C are not compatible. The two algorithms will produce different checksums for the same data.
dCode retains ownership of the "CRC-32" source code. Except explicit open source licence (indicated Creative Commons / free), the "CRC-32" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "CRC-32" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "CRC-32" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
The copy-paste of the page "CRC-32" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
CRC-32 on dCode.fr [online website], retrieved on 2025-01-18,