Cos'è CRC-32?
CRC-32 (Cyclic Redundancy Check, 32-bit) è un algoritmo di checksum veloce utilizzato per rilevare modifiche accidentali nei dati. Produce un valore a 32 bit (8 caratteri esadecimali) basato sulla divisione polinomiale dei dati di input. Comunemente implementato in hardware e software per il controllo degli errori in reti, dispositivi di archiviazione e formati di file.
Come funziona CRC-32
- Inizializza un registro a 32 bit con tutti 1 (0xFFFFFFFF).
- Elabora ogni byte facendo XOR con il byte superiore del registro e indicizzando in una tabella di lookup precomputata.
- Sposta il registro di 8 bit e fai XOR con il valore della tabella.
- Ripeti finché tutti i byte sono elaborati.
- Finalizza invertendo il registro (NOT bit a bit) per ottenere il valore CRC-32.
Applicazioni comuni
- ZIP, gzip, PNG e altri formati di file per controlli di integrità
- Ethernet, PPP e altri protocolli di rete
- Dispositivi di archiviazione come HDD, SSD e controller RAID
- Verifica degli archivi e controllo dell'integrità del download
Esempi di checksum
Input | CRC-32 |
---|---|
Hello World | 4a17b156 |
password | 477dff2a |
test123 | c4b96aea |
(vuoto) | 00000000 |
CRC-32 vs. altri checksum e hash
Algorithm | Output | Resistenza alle collisioni | Speed |
---|---|---|---|
CRC-32 | 32 bit | ❌ Bassa | ⚡ Molto veloce |
MD5 | 128 bit | ❌ Rotto | ⚡ Veloce |
SHA-1 | 160 bit | ❌ Compromesso | ⚡ Veloce |
SHA-256 | 256 bit | ✅ Sicuro | 🚀 Moderato |
BLAKE3 | 256 bit | ✅ Molto sicuro | ⚡ Fulmineo |
Domande frequenti
CRC-32 è sicuro per uso crittografico?
No. CRC-32 è progettato per il rilevamento degli errori, non per la sicurezza. È vulnerabile a collisioni intenzionali.
Perché usare CRC-32 invece di un hash crittografico?
CRC-32 è molto più veloce e sufficiente per rilevare errori accidentali, ma non dovrebbe essere usato per applicazioni critiche per la sicurezza.
Come posso verificare il download di un file?
Genera il checksum CRC-32 del file scaricato e confrontalo con il valore pubblicato per garantire l'integrità.