Cos'è un checksum?
Un checksum (somma di controllo) è un valore breve calcolato a partire da un blocco di dati, come un file o un pacchetto di rete, e salvato o inviato insieme a esso. Ricalcolarlo in seguito e confrontare i due valori mostra se i dati sono cambiati per corruzione o per un errore di trasmissione.
Aggiornato il 24 settembre 2026
| Checksum | Inviato | Arrivato | Esito |
|---|---|---|---|
| Somma dei byte (mod 256) | 66 | 66 | Corrispondono |
| CRC-32 | 2C3365EC | 2C3365EC | Corrispondono |
Inverti un bit e cambiano entrambi i checksum. Scambia due caratteri e i byte ci sono ancora tutti, quindi la loro somma resta uguale: solo CRC-32, che dipende dall'ordine, se ne accorge.
Le distribuzioni Linux come Ubuntu e Debian pubblicano un file chiamato SHA256SUMS accanto alle immagini di installazione. Ogni riga contiene una stringa di 64 caratteri e un nome di file. Quando il download finisce, esegui un comando sul file che hai ricevuto. Se stampa la stessa stringa, tutti i suoi miliardi di byte sono arrivati intatti. Se un solo bit si è invertito lungo il percorso, la stringa risulta completamente diversa.
Quella stringa è un checksum: un piccolo riassunto che cambia quando cambiano i dati.
Come funziona un checksum, passo per passo
- Chi invia esegue un algoritmo di checksum sui dati, byte per byte, e ottiene un risultato breve.
- Il risultato viaggia o viene salvato insieme ai dati: nell'intestazione di un pacchetto di rete, dentro un file ZIP accanto a ogni file compresso, o su una pagina di download.
- Chi riceve esegue lo stesso algoritmo sui dati che ha effettivamente ricevuto.
- I due risultati vengono confrontati. Se sono uguali, i dati quasi certamente non sono cambiati. Se sono diversi, i dati sono stati danneggiati, e chi riceve li scarta, li richiede o mostra un errore di checksum.
Un checksum rileva solo il danno; non può dire quale byte è cambiato né ripararlo. Per riparare serve un codice a correzione d'errore, come i codici Reed-Solomon dei CD e dei codici QR.
Il checksum più semplice somma tutti i byte e tiene gli ultimi 8 bit del totale. Esegui questo codice per vedere dove l'idea funziona e dove fallisce:
original sum= 78 crc32=a1628836
flipped sum= 80 crc32=a597580b
swapped sum= 78 crc32=59dbf74b
Cambiare un carattere cambia la somma. Scambiare due caratteri no, perché all'addizione non importa l'ordine, quindi la somma dei byte approva un pagamento di 10 invece di 100. CRC-32 (cyclic redundancy check, controllo di ridondanza ciclico) tratta i dati come un unico lungo numero binario e lo divide per un polinomio fisso di 33 bit; il resto di 32 bit dipende dalla posizione di ogni bit, quindi lo scambio viene scoperto. La demo qui sopra ti permette di provarlo sul tuo testo. CRC-32 rileva ogni raffica di errori lunga fino a 32 bit.
Algoritmi di checksum comuni
| Algoritmo | Dimensione | Dove lo incontri |
|---|---|---|
| Bit di parità | 1 bit | Connessioni seriali, memorie con parità |
| Cifra di controllo di Luhn | 1 cifra | Numeri di carte di credito, codici IMEI |
| Internet checksum | 16 bit | Intestazioni IPv4, TCP e UDP |
| Adler-32 | 32 bit | Il formato compresso zlib |
| CRC-32 | 32 bit | ZIP, gzip, PNG, frame Ethernet |
| MD5 | 128 bit | Vecchie pagine di download, programmi che trovano file duplicati |
| SHA-256 | 256 bit | Download di software, immagini Linux, Bitcoin |
I primi cinque intercettano gli incidenti, non gli attacchi. Chi modifica un file può aggiustare qualche byte in modo che il suo CRC-32 torni a corrispondere. MD5 e SHA-256 sono funzioni di hash crittografiche, progettate in modo che trovare due input con lo stesso output sia impraticabile. MD5 è stato poi violato (le collisioni sono state pubblicate nel 2004), e così SHA-1 (2017), quindi i download in cui conta la sicurezza usano SHA-256 o algoritmi più forti. MD5 rileva ancora benissimo la corruzione accidentale.
Come verificare un checksum
Sul tuo computer, ogni sistema operativo ha un comando integrato:
# Windows (PowerShell)
Get-FileHash ubuntu.iso -Algorithm SHA256
# macOS
shasum -a 256 ubuntu.iso
# Linux
sha256sum ubuntu.iso
Confronta l'output con il valore sulla pagina di download ufficiale; maiuscole e minuscole non contano. In Python, hashlib fa lo stesso controllo, leggendo il file a blocchi così un file da 6 GB non deve mai stare tutto in memoria:
a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447
OK
Cambia hello world in hello World ed eseguilo di nuovo: ogni carattere del checksum cambia, e l'ultima riga dice Checksum mismatch.
Cos'è un errore di checksum?
Un errore di checksum (checksum error) significa che il controllo è fallito: il valore calcolato dai dati che hai non corrisponde al valore salvato o inviato con essi. O i dati sono cambiati, o il checksum salvato si è danneggiato. Il messaggio e la soluzione dipendono da dove compare.
CMOS o BIOS checksum error all'avvio
Il firmware di un PC (BIOS o UEFI) conserva le sue impostazioni, come l'ordine di avvio e l'orologio, in una piccola memoria tenuta in vita da una batteria a bottone, di solito una CR2032, mentre il computer è scollegato. Accanto alle impostazioni è salvato un loro checksum. A ogni avvio il firmware lo ricalcola, e se i valori sono diversi mostra un messaggio come CMOS Checksum Error - Defaults Loaded e torna alle impostazioni di fabbrica.
La causa più comune è una batteria scarica o esaurita, soprattutto quando anche l'orologio si azzera. Un'interruzione di corrente mentre si salvavano le impostazioni, o l'azzeramento del CMOS con un jumper, ha lo stesso effetto. Per risolvere:
- Apri la schermata di configurazione (di solito Canc o F2 mentre il PC si avvia), imposta data, ora e le impostazioni che avevi cambiato, poi salva ed esci (spesso F10). Se il messaggio non torna, è stato un evento isolato.
- Se torna a ogni avvio a freddo, spegni, scollega il computer e sostituisci la batteria CR2032.
- Se il messaggio nomina il firmware stesso, come
BIOS ROM checksum erroroMain BIOS checksum error, l'immagine del firmware è danneggiata. Le schede con un chip BIOS di riserva la ripristinano automaticamente; sulle altre, usa la funzione di recupero del BIOS della scheda o aggiorna di nuovo il firmware dal sito del produttore, senza togliere corrente durante l'aggiornamento.
Checksum mismatch dopo un download
Lo SHA-256 del tuo file non corrisponde a quello sulla pagina di download. Il file potrebbe essere incompleto o corrotto (una connessione interrotta, un disco pieno), potresti confrontarlo con il checksum di un altro file (un'altra versione o architettura della CPU), oppure potresti confrontare due algoritmi diversi: un valore MD5 è di 32 caratteri esadecimali, un valore SHA-256 di 64. Raramente il file è stato manomesso.
Controlla l'algoritmo e il nome del file, poi scarica di nuovo il file dal sito ufficiale. Se anche una copia nuova dalla fonte ufficiale non corrisponde, non eseguirla. I gestori di pacchetti fanno questo controllo per te: pip si ferma con THESE PACKAGES DO NOT MATCH THE HASHES quando un pacchetto scaricato è diverso dall'hash fissato.
Errore di checksum in un archivio ZIP, RAR o 7z
I formati di archivio salvano un CRC-32 del contenuto originale di ogni file. Quando estrai, lo strumento lo ricalcola; WinRAR segnala la differenza come Checksum error e 7-Zip come CRC Failed. In un archivio cifrato, una password sbagliata produce lo stesso messaggio, perché una password sbagliata decifra dati senza senso. Scarica di nuovo l'archivio, assicurati che tutte le parti di un archivio diviso (.part1.rar, .part2.rar) ci siano e vengano dallo stesso caricamento, e riscrivi la password. Il comando Ripara archivio di WinRAR funziona meglio sugli archivi creati con un record di recupero, e l'opzione "Mantieni i file danneggiati" salva tutto ciò che è stato estratto correttamente.
Errori di checksum nei giochi e negli strumenti di rete
I giochi confrontano i checksum dei loro file, quindi un aggiornamento parziale o un file modificato non supera il controllo. In Steam, "Verifica l'integrità dei file di gioco" scarica di nuovo ogni file il cui checksum non corrisponde. In Wireshark, gli avvisi di checksum sui pacchetti inviati dal tuo computer di solito non sono veri errori: la scheda di rete inserisce il checksum dopo che Wireshark ha già catturato il pacchetto.
Falsi miti comuni
- "Un checksum che corrisponde dimostra che il file è sicuro." Dimostra che il file corrisponde al valore pubblicato. Se un attaccante controlla il sito web, può cambiare entrambi, ed è per questo che i progetti firmano anche i loro file di checksum con una chiave.
- "Un checksum può riparare un file corrotto." Rileva solo il danno. La soluzione è procurarsi una copia buona.
- "Checksum e hash sono cose diverse." Checksum descrive il compito; una funzione di hash come SHA-256 è uno strumento che può svolgerlo.
Cosa leggere dopo
Calcola i valori MD5, SHA-1 e SHA-256 di qualsiasi testo con il generatore di hash. I checksum lavorano sui dati grezzi, quindi cos'è un byte e cos'è un bit spiegano cosa viene effettivamente sommato. Un database usa i checksum delle pagine per scoprire la corruzione del disco, e la visualizzazione della tabella hash mostra un altro uso di un valore breve calcolato dai dati.
Domande frequenti
SHA-256 è un checksum?
Come si risolve un checksum error?
Cosa causa un errore di checksum?
Perché serve un checksum?
Come si genera un checksum?
sha256sum file su Linux, shasum -a 256 file su macOS o Get-FileHash file in Windows PowerShell. In Python, hashlib.sha256(data).hexdigest() dà un checksum SHA-256 e zlib.crc32(data) un CRC-32.