Impronta di un file (checksum)

Trascina un file e ottieni MD5, SHA-1, SHA-256 e SHA-512. Incolla il valore pubblicato dal sito e ti dico subito se coincide, oppure metti un secondo file e scopri se sono davvero identici. Tutto nel browser, il file non viene caricato da nessuna parte.

📄 Trascina qui il file

oppure clicca per sceglierlo, resta sul tuo dispositivo

nessun file scelto

📄 Trascina qui il secondo file

serve solo per sapere se due file sono identici

nessun file scelto

Algoritmi da calcolare

SHA-256 è quello che pubblicano quasi tutti i siti di download. Spunta MD5 o SHA-1 solo quando è quello il valore che devi confrontare, e se incolli un checksum qui sotto l'algoritmo giusto si spunta da solo.

🔒 Il file viene letto dentro il browser, blocco per blocco, e non viene caricato su nessun server.

Come si usa

Trascina il file nel primo riquadro (oppure clicca per sceglierlo) e le impronte compaiono da sole, con la barra che avanza mentre il file viene letto. Se il sito da cui hai scaricato pubblica un valore di controllo, incollalo nel campo apposito e non serve altro: dalla lunghezza il tool capisce se è un MD5, uno SHA-1, uno SHA-256 o uno SHA-512, spunta da solo l'algoritmo giusto e risponde sì o no, così non devi confrontare 64 cifre con gli occhi. Puoi incollare anche la riga intera prodotta da sha256sum o certutil -hashfile, con il nome del file di fianco, e vanno bene sia le maiuscole sia le minuscole. Il secondo riquadro serve quando la domanda è un'altra, cioè se due file che hai già sul disco sono davvero lo stesso file.

Che cos'è un'impronta e da cosa ti protegge davvero

Una funzione di hash macina tutti i byte del file e restituisce sempre lo stesso numero di cifre, 32 per MD5 e 64 per SHA-256, che il file pesi 3 KB o 8 GB. Cambia un solo bit e l'impronta cambia per intero, perché circa metà delle cifre si ribalta (è il cosiddetto effetto valanga). Per questo il confronto delle impronte smaschera un download interrotto a metà, un byte storto su una chiavetta stanca o un backup copiato male, cioè guasti che a occhio non si vedono e che si pagano più tardi con un errore incomprensibile durante l'installazione. C'è però un limite da tenere a mente, perché l'impronta ti protegge dall'incidente e non da chi attacca: se qualcuno riesce a sostituire il file su un mirror, quasi sempre può cambiare anche la pagina che ne pubblica il valore. Per l'autenticità servono una firma digitale (per esempio GPG) oppure un valore preso da una fonte diversa e affidabile.

MD5 e SHA-1 sono rotti, e resta un motivo per tenerli

Di MD5 esistono collisioni dal 2004, trovate dal gruppo di Wang Xiaoyun, e di SHA-1 dal 2017, quando Google e il CWI di Amsterdam pubblicarono SHAttered, due PDF diversi con lo stesso SHA-1. Collisione vuol dire che si possono costruire apposta due file diversi con la stessa impronta, quindi nessuno dei due algoritmi prova più che un file sia l'originale. Restano invece perfettamente adatti alla domanda pratica di chi scarica, cioè se il file è arrivato tutto e senza errori, e servono perché è ancora quello il valore che moltissimi progetti pubblicano accanto ai loro file. Se accanto trovi anche uno SHA-256, usa quello.

Come sono calcolate qui, e cosa non riesce a fare

MD5, SHA-1 e SHA-256 sono scritti a mano in JavaScript dentro questa pagina, in versione incrementale: il file viene letto a blocchi da 4 MiB e ogni blocco alimenta lo stato interno dell'algoritmo, quindi nessuna copia intera del file finisce in memoria e la dimensione non è un problema. MD5 deve per forza essere fatto a mano, perché WebCrypto (il motore crittografico del browser) non lo espone. Lo SHA-512 invece fa eccezione: lavora su parole da 64 bit, che JavaScript non ha, quindi viene affidato proprio a WebCrypto, che però pretende tutto il file in memoria in una volta sola. Su file da parecchi gigabyte quella richiesta può fallire, e in quel caso il tool te lo dice e ti invita a togliere la spunta a SHA-512. Il tempo dipende solo dal tuo processore e cresce in proporzione ai byte, per questo alla fine trovi scritto quanti MiB al secondo sono stati macinati, e il pulsante Ferma interrompe subito un calcolo troppo lungo.

Errori tipici, e cosa fare quando non corrisponde

Il primo errore è confrontare le impronte a occhio, perché lo sguardo controlla l'inizio e la fine e salta il centro, ed è esattamente lì che si nasconde la differenza. Il secondo è credere che maiuscole e minuscole cambino qualcosa, mentre A e a sono la stessa cifra esadecimale. Il terzo riguarda il formato, perché alcuni progetti pubblicano il valore in base64 invece che in esadecimale (44 caratteri per uno SHA-256, spesso con un uguale finale) e qui viene riconosciuto e convertito. Ricorda poi che l'impronta di un archivio zip non è l'impronta dei file che contiene, e che due file di dimensione diversa sono già diversi senza calcolare niente. Se il valore non corrisponde, quasi sempre il download si è interrotto, quindi riscarica e riprova. Se sbaglia una seconda volta con la stessa impronta, il file sul server potrebbe essere davvero diverso da quello annunciato: non installarlo e cerca un mirror ufficiale.