Il codice di questa pagina non è partito.

Se apri index.html direttamente da una cartella, i moduli JavaScript restano bloccati, quindi non succederà niente quando sceglierai un file. Servi invece la cartella via http:

powershell -ExecutionPolicy Bypass -File serve.ps1

Poi apri http://localhost:8080/.

Hash e checksum — MD5, SHA-1, SHA-256, SHA-512

Controlla un download contro il numero pubblicato da chi lo distribuisce, senza mandarlo a nessuno.

Lingua: Italiano
Vedi il codice
Qui non si caricano file, mai. Non c'è nessun server.

Un checksum è aritmetica sui byte del tuo file, e qui il conto si fa in questa pagina, con il processore di questo dispositivo. Il file viene letto dal disco a pezzi da quattro megabyte e ogni pezzo viene buttato appena è stato contato, quindi da nessuna parte si forma una copia intera: né in memoria, né tantomeno su un server. All'altro capo di questa pagina non c'è nessun server a cui mandare un file, nemmeno se qualcosa qui volesse farlo.

Verifica dal vivo: verifica in corso…

Offline: verifica in corso…

Non devi crederci sulla parola: apri gli strumenti di sviluppo, guarda la scheda Rete e controlla un file. Nessuna richiesta porta con sé un solo byte, né il nome né la dimensione. Oppure stacca la rete e controllane uno lo stesso.

1 Scegli un file

2 I checksum

MD5 e SHA-256 vengono calcolati di default, perché insieme coprono quasi ogni pagina di download in circolazione. Se ne spunti un altro, il file viene letto di nuovo per quello: la lettura è la metà lenta, quindi tutto ciò che è spuntato prima di scegliere il file esce da un'unica passata.

Quali checksum calcolare

3 Confrontalo con quello che dovrebbe essere

Incolla il checksum che ti ha dato la pagina di download. La forma non conta: esadecimale nudo, l'output di sha256sum, un intero file SHA256SUMS, la forma SHA256 (file) = … oppure l'attributo integrity preso da un tag script. Quale algoritmo sia si ricava dalla lunghezza, quindi non c'è niente da scegliere.

Vedi come Markdown

Come controllare un download con il suo checksum

  1. Scegli il file. Trascinalo sul riquadro oppure selezionalo a mano. Viene letto a pezzi direttamente dal disco; mentre lo fai non parte niente da nessuna parte, e non c'è una dimensione oltre la quale la pagina si arrende.
  2. Lascia che lo legga. MD5 e SHA-256 si calcolano di default, in un'unica passata. La barra dice a che punto è e a che velocità. Un'immagine disco grande ci mette più o meno quanto ci metterebbe a essere copiata, perché la quantità di lettura è la stessa.
  3. Incolla quello che dovrebbe venire. Quello che ti ha dato la pagina di download, in qualunque forma sia: esadecimale nudo, una riga di output di sha256sum, un intero file SHA256SUMS, oppure l'attributo integrity preso da un tag script. Quale algoritmo sia si ricava dalla lunghezza, e la casella giusta si spunta da sola.
  4. Leggi la risposta, non il colore. La pagina dice in una frase se questo è il file che quel checksum descrive. Se corrisponde, i byte sono identici a quelli misurati da chi lo ha pubblicato. Se non corrisponde non lo sono, e conviene riscaricare prima di aprirlo.
  5. Portati via i checksum, se ti servono. Copiane uno, copiali tutti, oppure salvali in un piccolo file di testo, nella forma con l'algoritmo davanti che scrivono gli strumenti da riga di comando. Così il nome dell'algoritmo viaggia insieme al numero.

La versione lunga

Come controllare un download con il suo checksum Come confrontare un checksum MD5 o SHA-256 su Windows, macOS e Linux o nel browser, cosa dimostra davvero una corrispondenza, e l'errore che rende inutile tutto l'esercizio.

Domande

Il mio file viene caricato da qualche parte?

No. Lo legge il tuo browser dal tuo disco e lo calcola il tuo processore, a pezzi da quattro megabyte. Questo strumento non ha un lato server, e la Content-Security-Policy della pagina elenca ogni indirizzo che può contattare: nessuno è nostro. Stacca la rete e continua a funzionare.

C'è un limite di dimensione?

No. Il file non sta mai intero da nessuna parte: viene letto a pezzi e ogni pezzo viene contato e buttato, così un'immagine disco da quaranta gigabyte usa gli stessi pochi megabyte di memoria di un file di testo. Quello che costa è tempo, e la pagina te lo dice mentre va avanti.

È il motivo per cui gli algoritmi sono scritti qui invece di essere passati al crypto.subtle.digest del browser, che sarebbe più veloce. Quella chiamata prende l'intero messaggio in un solo buffer e non c'è modo di darle un file a pezzi, quindi usarla avrebbe messo la dimensione massima verificabile in balia della memoria che questa scheda riesce a ottenere. Su un telefono sono qualche centinaio di megabyte, e quello che la gente vuole verificare di più sono le immagini disco.

Il checksum corrisponde. Che cosa è stato dimostrato, esattamente?

Che i byte sul tuo disco sono quelli che qualcuno aveva davanti quando ha scritto quel numero. Nient'altro, e sui limiti conviene essere precisi.

È dimostrato che il download non si è troncato, non è stato rovinato da un disco guasto e non è stato scambiato per strada. Non è dimostrato che il file sia innocuo, perché chi pubblica può misurare un malware con la stessa esattezza di qualsiasi altra cosa. Ed è dimostrato molto poco se il checksum arrivava dalla stessa pagina, sulla stessa connessione, del file: chi poteva cambiare una cosa poteva cambiare l'altra. Un checksum vale soprattutto quando ti arriva per una strada diversa: un file SHA256SUMS firmato, l'annuncio di rilascio di una distribuzione, un secondo mirror, o un gestore di pacchetti che lo conosce già.

Non corrisponde. E adesso?

Prima riscarica il file, dallo stesso posto. Un trasferimento interrotto o ripreso è di gran lunga la causa più comune, e la seconda copia di solito risolve.

Se la seconda copia dà la stessa risposta sbagliata, controlla di confrontare la riga giusta: le pagine di rilascio elencano più file, e il checksum della build ARM non corrisponderà mai a quello della x86. Poi controlla la versione. Se è tutto giusto e continua a non corrispondere, non aprire il file. Prendilo da un altro mirror e confronta i due checksum fra loro.

Quale dovrei usare?

Quello che ha pubblicato chi distribuisce il file. Il senso dell'esercizio è confrontare con il suo numero, e quello non lo scegli tu.

Se invece stai producendo un checksum anziché verificarlo, usa SHA-256. MD5 e SHA-1 sono rotti nel senso che conta: due file diversi con lo stesso valore si possono costruire apposta, in poche ore con MD5 e con una spesa contenuta con SHA-1. Questo non li rende inutili contro gli incidenti, perché un download troncato non finisce per caso sullo stesso valore dell'originale; però significa che nessuno dei due può più dirti che nessuno ci ha messo mano. SHA-384 e SHA-512 vanno benissimo e in pratica non sono migliori: stanno qui perché qualche progetto li pubblica.

Perché c'è MD5 se è rotto?

Perché è ancora quello che sta stampato. Mirror, download di firmware, pagine di software universitarie e moltissimi siti di produttori hanno pubblicato un MD5 vent'anni fa e da allora non hanno più toccato la pagina. Uno strumento che si rifiutasse di calcolarlo si rifiuterebbe di rispondere alla domanda con cui i suoi visitatori arrivano davvero.

Quello che può fare, invece, è dire quanto vale la risposta, ed è quello che fa la nota accanto alla casella. Un MD5 che corrisponde esclude ancora un download rovinato. Non esclude un download manomesso.

Quali formati posso incollare nel riquadro di confronto?

Tutti quelli usati di solito, e la pagina capisce da sola quale sia.

Esadecimale nudo, con o senza spazi. Una riga di output di md5sum o sha256sum, con il nome del file dopo. Un intero file SHA256SUMS con quaranta righe: in quel caso viene usata la riga che nomina il tuo file. La forma BSD, SHA256 (disk.iso) = …. Un'etichetta davanti, come in SHA-256: …. E un attributo di subresource integrity, sha384-…, che è in base64 invece che in esadecimale e viene decodificato prima del confronto.

Quale algoritmo sia si ricava dalla lunghezza: 32 caratteri esadecimali sono un MD5, 40 uno SHA-1, 64 uno SHA-256, 96 uno SHA-384 e 128 uno SHA-512. Non ce ne sono due della stessa lunghezza, quindi non c'è niente da scegliere e niente da sbagliare.

Darà lo stesso risultato di sha256sum o certutil?

Sì, byte per byte. Sono specifiche esatte con vettori di test pubblicati, e ogni algoritmo qui viene verificato a ogni build contro quei vettori e contro l'implementazione del sistema operativo.

L'unica differenza che vedrai è la presentazione. Il certutil -hashfile di Windows scrive in maiuscolo e con spazi; questa pagina scrive in minuscolo, che è quello che usa quasi chiunque pubblichi. Il confronto ignora entrambe le cose, quindi un checksum copiato da certutil corrisponde a uno in minuscolo incollato qui.

Posso confrontare due file fra loro?

Sì, con un passaggio in più: controlla il primo, copia il suo checksum, poi scegli il secondo e incolla quel checksum nel riquadro. Se i due file sono identici, la pagina lo dirà.

Vale la pena saperlo per il caso in cui i checksum sono silenziosamente imbattibili: capire se la copia sul disco di backup è davvero lo stesso file di quella sul portatile, quando tutte e due dichiarano la stessa dimensione e la stessa data.

Modifica il mio file?

No. Questo strumento legge soltanto. Non c'è un file in uscita, non c'è una ricodifica e non c'è niente che venga riscritto: l'unica cosa che puoi scaricare è un piccolo file di testo con i checksum. Il tuo originale resta intatto sul disco, che è anche la risposta onesta a cosa succede se chiudi la scheda.

È gratis, e serve un account?

È gratis, e non c'è account, né registrazione, né prova. Non c'è limite alla dimensione del file né a quanti file controlli. Il sito ha pubblicità, che è quello che lo paga; alla pubblicità non viene dato niente sul tuo file.

Funziona offline?

Sì. Carica la pagina una volta, poi stacca la rete e continua a funzionare. È anche il modo più semplice per dimostrare che non viene caricato niente: uno strumento che mandasse via il tuo file per farlo calcolare si fermerebbe nel momento in cui stacchi la spina.