CRC32
CRC32 is a 32-bit cyclic redundancy check based on polynomial division over GF(2), used to detect transmission errors — not a cryptographic hash.
Purpose
Efficiently detects burst errors for data integrity — not for security authentication.
Mechanism
The input bitstream is treated as a polynomial over GF(2) and divided by a generator polynomial (e.g. 0x04C11DB7); the remainder is the 32-bit CRC. Different polynomials (IEEE, Castagnoli, etc.) have different error-detection properties. CRC32C (Castagnoli) offers better performance and detection.
Use cases
- ZIP/GZIP file verification
- Ethernet frame FCS
- SSE/AVX accelerated checksums
- iSCSI data integrity
Examples
- Input
helloOutput0x3610a686IEEE 802.3 polynomial
Common errors
- Using CRC32 for cryptographic authentication (not collision resistant)
- Use HMAC-SHA256 for authentication
Related terms
Adler-32
Adler-32 is a 32-bit checksum designed by Mark Adler; faster to compute than CRC32 but slightly weaker at error detection, used for zlib compression stream integrity. GLOSSARY
MD5
MD5 is a 128-bit cryptographic hash function designed by Ronald Rivest; proven insecure by collision attacks, it is now used only for non-security purposes such as checksums. GLOSSARY
SHA-256
SHA-256 is the 256-bit-output member of the SHA-2 family, widely used in TLS, blockchains, and cryptographic applications, with no known practical attacks. GLOSSARY