Crc32b Hash Generator
Generate CRC-32B hash checksums from text or files instantly. Supports drag-and-drop, copy-to-clipboard, and hash history.
No hashes generated yet.
About
CRC-32B is the 32-bit Cyclic Redundancy Check defined by the IEEE 802.3 standard, using polynomial 0x04C11DB7 (reflected as 0xEDB88320). It produces an 8-character hexadecimal digest (32 bits) used for error detection in network frames, ZIP archives, PNG chunks, and firmware images. CRC-32B is not cryptographic. It detects accidental corruption but provides zero resistance against intentional tampering. A single flipped bit in a multi-gigabyte file changes the hash entirely, making it effective for integrity verification during transfer. This tool computes the checksum client-side. No data leaves your browser. It processes both raw text (UTF-8 encoded) and binary files. Note: CRC-32B has a collision space of 232 (4,294,967,296 possible values). For datasets exceeding a few billion entries, collision probability rises per the birthday paradox.
Formulas
The CRC-32B checksum is computed by treating the input as a polynomial over GF(2) and dividing it by the generator polynomial. The reflected table-driven implementation processes one byte at a time:
for each byte b in input:
index = (crc β b) β§ 0xFF
crc = (crc ≫≫≫ 8) β T[index]
result = crc β 0xFFFFFFFF
Where T is the precomputed 256-entry lookup table. Each table entry T[i] is generated by iterating 8 times over each index i from 0 to 255:
if c β§ 1:
c = 0xEDB88320 β (c ≫≫≫ 1)
else:
c = c ≫≫≫ 1
Where c = current value, b = input byte, T = CRC table, β = bitwise XOR, ≫≫≫ = unsigned right shift, 0xEDB88320 = reflected polynomial of the IEEE 802.3 standard CRC-32.
Reference Data
| Algorithm | Polynomial (Normal) | Polynomial (Reflected) | Output Bits | Hex Digits | Common Use |
|---|---|---|---|---|---|
| CRC-32B (IEEE 802.3) | 0x04C11DB7 | 0xEDB88320 | 32 | 8 | Ethernet, ZIP, PNG, gzip |
| CRC-32C (Castagnoli) | 0x1EDC6F41 | 0x82F63B78 | 32 | 8 | iSCSI, Btrfs, ext4 |
| CRC-16-CCITT | 0x1021 | 0x8408 | 16 | 4 | HDLC, Bluetooth, SD cards |
| CRC-16-IBM | 0x8005 | 0xA001 | 16 | 4 | Modbus, USB |
| CRC-8 | 0x07 | 0xE0 | 8 | 2 | ATM HEC, IΒ²C |
| CRC-64-ECMA | 0x42F0E1EBA9EA3693 | - | 64 | 16 | HDFS, XZ Utils |
| Adler-32 | N/A (sum-based) | N/A | 32 | 8 | zlib |
| MD5 | N/A (Merkle - DamgΓ₯rd) | N/A | 128 | 32 | Legacy checksums (broken crypto) |
| SHA-1 | N/A (Merkle - DamgΓ₯rd) | N/A | 160 | 40 | Git objects (deprecated crypto) |
| SHA-256 | N/A (Merkle - DamgΓ₯rd) | N/A | 256 | 64 | TLS, Bitcoin, file integrity |
| CRC-32/MPEG-2 | 0x04C11DB7 | - | 32 | 8 | MPEG-2 transport streams |
| CRC-32/BZIP2 | 0x04C11DB7 | - | 32 | 8 | bzip2 file format |
| CRC-32/JAMCRC | 0x04C11DB7 | 0xEDB88320 | 32 | 8 | No final XOR variant |
| CRC-32/XFER | 0x000000AF | - | 32 | 8 | XFER protocol |
Frequently Asked Questions
hash('crc32b', $string) and Python's binascii.crc32().