Calcolatore di hash per file gratuito

Calcola hash SHA-1, SHA-256, SHA-384, SHA-512 e MD5 per qualsiasi file. Verifica l'integrità del file e rileva i cambiamenti istantaneamente.

I tuoi dati non lasciano mai il tuo dispositivo
Rilascia un file qui oppure clicca per sfogliare
File/testo: -
Dimensione: -
Calcolato: -

Cos'è un hash di file?

Un hash di file è un'impronta a lunghezza fissa del contenuto di un file. Anche un piccolo cambiamento al file produce un hash completamente diverso. Gli hash sono usati per verificare l'integrità dei file, rilevare la corruzione e confermare l'autenticità del file. Algoritmi comuni includono SHA-256 (moderno, sicuro), MD5 (legacy) e SHA-1.

Gli algoritmi, una breve storia

Cinque algoritmi in questo strumento, in ordine cronologico di rilascio. MD5 (Message Digest 5, Ronald Rivest al MIT, RFC 1321 pubblicato nell'aprile 1992) produce un hash di 128 bit ed è stato l'hash dominante per uso generale negli anni '90 e nei primi anni 2000. Le debolezze crittografiche hanno cominciato a emergere nel 1996 (la pseudo-collisione di Dobbertin); un attacco pratico di collisione è stato dimostrato da Xiaoyun Wang e Hongbo Yu nell'agosto 2004 al CRYPTO 2004, completato in meno di un'ora su una singola macchina. Marc Stevens ha pubblicato un attacco di collisione con prefisso scelto nel 2008 che ha permesso di forgiare certificati X.509 in collisione. MD5 è ora rotto per qualsiasi scopo crittografico, non usarlo mai dove la resistenza alle collisioni conta (firme digitali, fingerprint di certificati, hash delle password). Resta utile per controlli di integrità non crittografici (rilevare corruzioni accidentali da dischi difettosi o trasferimenti di rete rumorosi) e per identificatori indirizzati al contenuto dove ti fidi che la sorgente non sia malevola.

SHA-1 (Secure Hash Algorithm 1, progettato dalla NSA, pubblicato come FIPS 180-1 nell'aprile 1995) produce un hash di 160 bit ed è stato l'hash crittografico dominante dalla fine degli anni '90 ai primi anni 2010. Attacchi teorici sono stati proposti nel 2005 da Wang, Yin e Yu. La prima collisione SHA-1 pratica è stata pubblicata il 23 febbraio 2017 da un team Google + CWI Amsterdam guidato da Marc Stevens, l'attacco "SHAttered", usando circa 9 quintilioni di calcoli SHA-1 per produrre due file PDF con hash SHA-1 identici ma contenuti visibilmente diversi. I browser avevano già iniziato a eliminare gradualmente i certificati TLS SHA-1 a quel punto; Git moderno sta migrando da SHA-1 a SHA-256 per l'identità degli oggetti. Come MD5, SHA-1 va bene per integrità non crittografica ma non dovrebbe mai essere usato dove la resistenza alle collisioni conta nel 2026.

SHA-2 (NSA, FIPS 180-2 pubblicato nell'agosto 2002) è l'attuale famiglia di hash da lavoro, un insieme di funzioni correlate che include SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 e SHA-512/256. SHA-256 produce hash a 256 bit, SHA-384 produce hash a 384 bit, SHA-512 produce hash a 512 bit; 384 è essenzialmente SHA-512 con output troncato e un IV diverso. Nessun attacco pratico contro la famiglia SHA-2 esiste a partire dal 2026; SHA-256 è la scelta predefinita per nuove applicazioni ed è la funzione di hash dietro Bitcoin (sia per il mining sia per la derivazione degli indirizzi), i fingerprint dei certificati TLS, la migrazione pianificata dell'identità degli oggetti di Git, l'hash delle transazioni Ethereum, le firme HS256 dei JWT e la maggior parte delle checksum di distribuzione software. SHA-512 è preferito quando 256 bit di output non bastano o quando vuoi le prestazioni leggermente superiori sulle CPU a 64 bit (le operazioni interne di SHA-512 sono a 64 bit, contro i 32 bit di SHA-256, quindi processa più dati per ciclo di CPU su hardware a 64 bit nonostante l'output più grande).

SHA-3 (Keccak, progettato da Guido Bertoni, Joan Daemen, Michaël Peeters e Gilles Van Assche, vincitore della NIST SHA-3 Competition nell'ottobre 2012, standardizzato come FIPS 202 nell'agosto 2015) è la polizza assicurativa crittografica: strutturalmente diverso da SHA-2 (costruzione a spugna invece che Merkle-Damgård), così qualsiasi breakthrough che rompesse SHA-2 non romperebbe necessariamente SHA-3. SHA-3 al momento non è nella lista degli algoritmi di questo strumento perché la Web Crypto API non lo includeva nella specifica originale, i browser moderni potrebbero aggiungerlo in futuro. La famiglia SHA-2 è il default raccomandato per l'hashing lato browser oggi.

Alternative moderne oltre SHA-2

Due famiglie di hash non NIST hanno guadagnato terreno per ragioni di prestazioni. BLAKE2 (Aumasson, Neves, Wilcox-O'Hearn, Winnerlein, gennaio 2013) è più veloce di SHA-2 con sicurezza comparabile ed è ampiamente usato in criptovaluta, hashing di password Argon2 e applicazioni ad alte prestazioni dove la velocità di SHA-2 è un collo di bottiglia. BLAKE3 (O'Connor, Aumasson, Neves, Wilcox-O'Hearn, gennaio 2020) è una riprogettazione parallelizzabile su molti core CPU e ancora più veloce, particolarmente attraente per l'hashing di file molto grandi perché il lavoro si distribuisce sui core in modo pulito. Nessuna delle due è nello standard Web Crypto API, quindi questo strumento si attiene alla famiglia SHA-2 più MD5 e SHA-1 per compatibilità; per l'hashing BLAKE3 a riga di comando l'implementazione canonica è lo strumento b3sum dal repository di riferimento BLAKE3. La scelta per l'hashing di file lato browser nel 2026 rimane SHA-256 a meno che non ci sia una ragione specifica per usare altro, ampia compatibilità, nessun problema di brevetti, accelerazione hardware sulla maggior parte delle CPU moderne (Intel SHA Extensions dal Goldmont del 2016, istruzioni ARMv8 SHA-2 essenzialmente su ogni smartphone) e velocità accettabile anche su file di più gigabyte nel browser.

Quando gli hash dei file si guadagnano il pane

Come funziona questo strumento

Quando rilasci un file nell'editor, il browser lo legge in un ArrayBuffer tramite FileReader.readAsArrayBuffer() (o, nei browser moderni, il metodo più efficiente File.arrayBuffer() che ritorna una Promise). La crypto.subtle.digest(algorithm, buffer) della Web Crypto API esegue l'hash del buffer con codice nativo, implementato in C++ all'interno del motore del browser, spesso usando accelerazione hardware (Intel SHA Extensions su x86-64 da Goldmont, istruzioni ARMv8 SHA-2 essenzialmente su ogni smartphone). L'ArrayBuffer ritornato viene convertito in una stringa esadecimale per la visualizzazione. Tre hash in pura JavaScript (MD5 e SHA-1, dove la Web Crypto API potrebbe rifiutare o dove è in uso un polyfill) funzionano tramite piccole implementazioni dedicate. Nessun passo di upload, nessuna elaborazione lato server, nessuna telemetria, verifica nel pannello Network di DevTools mentre rilasci un file (nessuna richiesta parte) o metti la pagina offline (modalità aereo) dopo il caricamento e l'hasher continua a funzionare su file locali. Il limite pratico di dimensione del file è la memoria del browser: l'hashing di un file da 1 GB funziona ma consuma circa 1 GB di RAM durante l'operazione; file di più gigabyte possono forzare lo swap del browser o un crash. Per file molto grandi, uno strumento dedicato a riga di comando (shasum -a 256 su macOS/Linux, certutil -hashfile ... SHA256 su Windows) è la scelta migliore.

Privacy: perché il solo browser conta soprattutto qui

I file di cui potresti voler calcolare l'hash includono software scaricato (di cui stai verificando l'integrità proprio perché non ti fidi ancora), documenti privati (di cui vuoi registrare l'hash senza darli a nessuno), file multimediali non rilasciati, prove in un'indagine forense o build proprietarie dove anche caricare il file su un servizio di hashing è inaccettabile. Gli hasher di file lato server, anche quando dichiarano "non conserviamo il file", ricevono l'intero contenuto del file, nel momento in cui è nella loro memoria la garanzia di privacy è già persa. Questo strumento funziona interamente nel tuo browser tramite la Web Crypto API; il file non attraversa mai la rete. Verifica nel pannello Network di DevTools mentre rilasci un file (l'unica attività di rete dovrebbe essere il caricamento iniziale della pagina). Metti la pagina offline (modalità aereo) dopo il caricamento, l'hasher continua a funzionare, dimostrando l'architettura solo locale. Per file che contengono qualsiasi cosa di sensibile, documenti riservati, software non rilasciato, registri finanziari, scansioni mediche, qualsiasi cosa coperta da NDA o regolamentazione di compliance, l'hashing lato browser è l'unica opzione sicura.

Domande frequenti

Quale algoritmo di hash dovrei usare?

SHA-256 è raccomandato per le nuove applicazioni. MD5 e SHA-1 sono considerati deboli per scopi crittografici ma funzionano ancora per controlli di integrità di base. Questo strumento offre tutte le opzioni per corrispondere allo standard usato dal tuo software.

Si può invertire un hash per ottenere il file originale?

No. Gli hash sono funzioni unidirezionali. Non puoi invertire un hash per recuperare i dati originali. È voluto · è ciò che rende gli hash sicuri per memorizzare password e verificare l'integrità dei file.

MD5 è sicuro per la verifica di file?

MD5 non è crittograficamente sicuro e non dovrebbe essere usato per applicazioni di sicurezza. Funziona comunque per la rilevazione di base della corruzione di file e per checksum generali. Usa SHA-256 per qualsiasi verifica critica.

C'è un limite di dimensione del file?

Nessun limite rigido, ma i limiti pratici dipendono dalla memoria del browser. File fino a qualche centinaio di MB si calcolano rapidamente su qualsiasi dispositivo moderno. File nell'intervallo 1-2 GB funzionano ma consumano RAM pari alla dimensione del file durante il passaggio di hashing. File di più gigabyte possono innescare swapping o crash OOM del browser. Per file molto grandi, gli strumenti a riga di comando (shasum -a 256 file su macOS/Linux, certutil -hashfile file SHA256 su Windows, Get-FileHash in PowerShell) li gestiscono meglio perché possono leggerli in streaming invece di caricarli tutti in memoria.

Cosa significa quando due file hanno lo stesso hash?

Per una funzione di hash sana (SHA-256, SHA-512 o qualsiasi della famiglia SHA-2 nel 2026), significa che i file sono identici bit per bit, la probabilità che due file distinti producano lo stesso hash è trascurabilmente piccola. Per funzioni di hash rotte (MD5, SHA-1), potrebbe significare o file identici oppure una collisione costruita deliberatamente. La regola pratica: se calcoli SHA-256 di due file e ottieni lo stesso valore, i file sono uguali. Se calcoli MD5 e ottieni lo stesso valore, i file sono probabilmente uguali ma un avversario determinato potrebbe averli ingegnerizzati per entrare in collisione.

Strumenti correlati