Menu
Coddy logo textTech

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.

Di Kevin Spektor, Cofondatore e CTO

Aggiornato il 24 settembre 2026

ChecksumInviatoArrivatoEsito
Somma dei byte (mod 256)6666Corrispondono
CRC-322C3365EC2C3365ECCorrispondono

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

  1. Chi invia esegue un algoritmo di checksum sui dati, byte per byte, e ottiene un risultato breve.
  2. 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.
  3. Chi riceve esegue lo stesso algoritmo sui dati che ha effettivamente ricevuto.
  4. 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

AlgoritmoDimensioneDove lo incontri
Bit di parità1 bitConnessioni seriali, memorie con parità
Cifra di controllo di Luhn1 cifraNumeri di carte di credito, codici IMEI
Internet checksum16 bitIntestazioni IPv4, TCP e UDP
Adler-3232 bitIl formato compresso zlib
CRC-3232 bitZIP, gzip, PNG, frame Ethernet
MD5128 bitVecchie pagine di download, programmi che trovano file duplicati
SHA-256256 bitDownload 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:

  1. 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.
  2. Se torna a ogni avvio a freddo, spegni, scollega il computer e sostituisci la batteria CR2032.
  3. Se il messaggio nomina il firmware stesso, come BIOS ROM checksum error o Main 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?
Sì, quando viene usato per verificare i dati. SHA-256 è una funzione di hash crittografica, e il valore di 64 caratteri che produce per un file viene comunemente chiamato checksum SHA-256 di quel file. È più lento di CRC-32, ma protegge anche dalle modifiche intenzionali, perché nessuno riesce in pratica a costruire un file diverso con lo stesso valore SHA-256.
Come si risolve un checksum error?
Dipende da dove compare. All'avvio, apri la configurazione del BIOS, controlla data e impostazioni, salva ed esci, e sostituisci la batteria a bottone del CMOS se l'errore torna. Dopo un download o in un archivio, scarica di nuovo il file dalla fonte ufficiale e assicurati che ci siano tutte le parti di un archivio diviso e che la password sia giusta.
Cosa causa un errore di checksum?
I dati sono cambiati tra il momento in cui è stato calcolato il loro checksum e il momento in cui è stato controllato. Le cause comuni sono un download interrotto, un disco o una chiavetta USB che si stanno guastando, una batteria CMOS scarica, un'interruzione di corrente mentre venivano scritti impostazioni o firmware, e una password sbagliata su un archivio cifrato.
Perché serve un checksum?
Memorie e reti non sono perfette. I bit si invertono per rumore elettrico, interferenze radio, memorie flash usurate o dischi che si guastano, e senza un controllo i dati danneggiati verrebbero usati senza che nessuno se ne accorga. Un checksum è un modo economico per notare il danno, così i dati possono essere inviati di nuovo o scartati.
Come si genera un checksum?
Esegui un algoritmo di checksum sui dati. Per un file, usa 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.
Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA