Cos'è un hash MD5?

Un hash MD5 è un'impronta digitale a 128 bit generata da qualsiasi dato. È scritto come una stringa esadecimale di 32 caratteri ed è prodotto da una funzione unidirezionale: lo stesso input restituisce sempre lo stesso hash, ma i dati originali non possono essere recuperati da esso. Anche un cambio di un solo byte nel file sorgente produce un hash completamente diverso.

MD5 è ampiamente utilizzato come checksum per verificare che un file sia stato scaricato, copiato o trasferito senza corruzione. Sebbene MD5 non sia più considerato sicuro per scopi crittografici come le firme digitali, rimane un modo veloce e affidabile per rilevare modifiche accidentali e confermare l'integrità dei file.

Descrizione dello strumento

Questo strumento calcola l'hash MD5 di un file direttamente nel tuo browser, inclusi file molto grandi che normalmente supererebbero i limiti di memoria. Il file viene trasmesso in blocchi ed elaborato in modo incrementale, quindi nulla viene caricato su un server e i file di dimensioni gigabyte possono essere sottoposti a hash senza bloccare la pagina.

Esempi

File di input Hash MD5
File vuoto (0 byte) d41d8cd98f00b204e9800998ecf8427e
File di testo con hello 5d41402abc4b2a76b9719d911017c592
Immagine ISO da 4 GB e2fc714c4727ee9395f324cd2e7f331f (esempio)

Caratteristiche

  • Calcola l'hash di file di qualsiasi dimensione, inclusi file di più gigabyte, senza caricarli completamente in memoria
  • Elabora i file localmente nel browser — nessun caricamento, nessun server, nessun dato lascia il tuo dispositivo
  • Barra di avanzamento in tempo reale che mostra la percentuale completata durante il calcolo dell'hash
  • Visualizza il nome del file e la dimensione del file leggibile dall'uomo insieme al risultato
  • Copia con un clic del checksum MD5 risultante

Casi d'uso

  • Verificare che un download di grandi dimensioni (immagine ISO, video, dataset) corrisponda al checksum MD5 pubblicato dalla sua fonte
  • Confermare che un file copiato su un'unità esterna o caricato su un'archiviazione cloud sia identico all'originale
  • Generare un'impronta digitale di un artefatto di build o di un backup in modo da poter rilevare successivamente corruzione o manomissione

Come funziona

Il file viene letto in blocchi di 16 MB utilizzando l'API File.slice() del browser. Ogni blocco viene inserito in un'implementazione MD5 incrementale (SparkMD5), che aggiorna uno stato interno senza mantenere i blocchi precedenti in memoria. Una volta elaborato ogni blocco, l'hash finale viene calcolato dallo stato accumulato. Questo approccio di streaming mantiene l'utilizzo della memoria basso e costante indipendentemente dalla dimensione del file.

Suggerimenti

  • Per file molto grandi, la velocità di calcolo dell'hash dipende principalmente dalla velocità di lettura del disco e dalla tua CPU; gli SSD e i browser moderni offrono le migliori prestazioni.
  • Confronta l'hash generato con quello ufficiale incollando entrambi in uno strumento di confronto di testo, oppure verifica semplicemente che le stringhe corrispondano carattere per carattere.
  • Se hai bisogno di garanzie più forti contro manomissioni intenzionali, utilizza invece uno strumento SHA-256 — MD5 è adatto per i controlli di integrità, non per la verifica critica per la sicurezza.

Domande frequenti

Il mio file viene caricato da qualche parte? No. Il calcolo dell'hash avviene interamente nel tuo browser utilizzando JavaScript. Il file non lascia mai il tuo dispositivo.

Perché MD5 è ancora utilizzato se non è sicuro? MD5 è compromesso per l'uso crittografico (un attaccante può creare collisioni), ma è comunque eccellente nel rilevare corruzione accidentale ed è molto più veloce degli hash sicuri. La maggior parte dei file checksum pubblicati insieme ai download utilizza ancora MD5 o SHA-1.

Qual è la dimensione massima del file? Non esiste un limite rigido imposto dallo strumento. In pratica, il limite è impostato dal tuo browser e dalle risorse di sistema disponibili, ma i file di più gigabyte funzionano bene perché il file viene trasmesso in blocchi.