Generatore di hash
Come funziona
Scrivi o incolla un testo e vengono calcolati sette hash insieme, in tempo reale: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 (256) e BLAKE2b. Passa alla scheda File per calcolare l'hash di un file trascinandolo nell'area apposita o scegliendolo dal computer. SHA-1, SHA-256, SHA-384 e SHA-512 usano la Web Crypto API integrata nel browser (window.crypto.subtle.digest); MD5 usa una piccola implementazione in JavaScript puro; SHA-3 (Keccak) usa js-sha3 e BLAKE2b usa blakejs. Tutto avviene in locale, senza richieste di rete.
Un hash crittografico prende un input di qualsiasi lunghezza e produce un'impronta di lunghezza fissa. SHA-256 restituisce sempre 256 bit (64 caratteri esadecimali), SHA-512 ne restituisce 512 (128 caratteri), SHA-3-256 ne ha 256 e BLAKE2b di default 512. Basta cambiare un solo bit dell'input, un carattere diverso o un a capo in fondo, per ottenere un hash completamente diverso. È questa proprietà che rende gli hash utili per verificare l'integrità: scarichi un programma, ne calcoli lo SHA-256 e lo confronti con il valore pubblicato da chi lo distribuisce. Se coincidono, hai proprio il file che volevano farti avere.
Non tutti gli hash si equivalgono. MD5 e SHA-1 sono considerati rotti per gli usi di sicurezza: i ricercatori hanno dimostrato collisioni pratiche (due input diversi con lo stesso hash). Vanno ancora bene come checksum contro la corruzione accidentale, ed è per questo che git usa SHA-1 e molti ETag delle CDN usano ancora MD5, ma non vanno usati per firmare dati, per verificare l'autenticità di file da fonti non fidate o per derivare chiavi. SHA-256, SHA-384, SHA-512, SHA-3 e BLAKE2b non hanno attacchi di collisione pratici noti e sono quelli su cui si basano i sistemi moderni.
Gli algoritmi più recenti servono in casi precisi. SHA-3 (Keccak) è stato scelto dal NIST nel 2015 come alternativa a SHA-2 con una costruzione interna del tutto diversa (sponge invece di Merkle–Damgård), quindi un'eventuale rottura teorica di SHA-2 non romperebbe automaticamente SHA-3. BLAKE2b è molto più veloce di SHA-2 e SHA-3 sulle CPU moderne, ed è per questo che Argon2, WireGuard, Zcash e IPFS lo usano internamente: è la scelta giusta quando vuoi una sicurezza moderna con prestazioni migliori.
Gli hash sono a senso unico: da un hash non si risale all'input. Chi attacca fa un'altra cosa: calcola in anticipo gli hash delle password più comuni (rainbow table) e cerca l'hash in quella tabella. Per questo le password vere si salvano con un hash lento e con salt come bcrypt, scrypt o Argon2, che trovi nel generatore di hash per password di questo sito, e non con un semplice SHA-256.
Domande frequenti
Quali algoritmi di hash calcola lo strumento?
- Sette, tutti insieme: MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 (output a 256 bit, noto anche come Keccak-256) e BLAKE2b (output a 512 bit). Incolla un testo o trascina un file e ogni hash si aggiorna in parallelo.
Come calcolare lo SHA-256 di un file?
- Apri la scheda File, trascina il file nell'area tratteggiata o cliccaci sopra per sceglierlo: la riga SHA-256 mostra l'impronta di 64 caratteri esadecimali. Confrontala con quella pubblicata sul sito da cui hai scaricato il file; se anche un solo carattere è diverso, il file non è lo stesso.
I miei dati vengono caricati su un server?
- No. Gli hash SHA-1/256/384/512 usano la Web Crypto API integrata nel browser (crypto.subtle.digest), MD5 una piccola implementazione JavaScript inclusa nella pagina, SHA-3 e BLAKE2b le librerie js-sha3 e blakejs. Tutto questo codice gira nella scheda del browser, e nella scheda Rete degli strumenti per sviluppatori non parte nessuna richiesta mentre calcoli.
Posso calcolare l'hash di file grandi?
- Sì, entro i limiti della memoria del browser. La scheda File legge il file con la File API e lo carica in memoria per intero prima di calcolare gli hash, quindi il limite pratico è la RAM libera del browser e il tempo che sei disposto ad aspettare.
Perché c'è MD5 se non è sicuro?
- Perché MD5 si usa ancora tutti i giorni per compiti che non riguardano la sicurezza: cache indirizzate per contenuto, ETag delle CDN, controlli di integrità contro la corruzione accidentale e compatibilità con sistemi datati. Per qualsiasi uso legato alla sicurezza usa invece SHA-256, SHA-512 o SHA-3.
Che differenza c'è tra SHA-1, SHA-2 e SHA-3?
- SHA-1 è la prima generazione di Secure Hash Algorithm (160 bit, rotto dal 2017 con SHAttered). SHA-2 è la famiglia oggi più diffusa: SHA-224, SHA-256, SHA-384 e SHA-512 sono tutte varianti di SHA-2 e restano sicure. SHA-3 è un progetto completamente diverso (costruzione sponge Keccak), scelto dal NIST nel 2015 come riserva indipendente nel caso SHA-2 venga rotto. In software SHA-3 è più lento di SHA-2, ma resiste agli attacchi di length extension che colpiscono SHA-2.
Quando usare BLAKE2b?
- Quando vuoi una sicurezza moderna con prestazioni migliori di SHA-2 o SHA-3 sull'hardware comune. BLAKE2b è venuto dopo SHA-3 ed è pensato per la velocità, ed è per questo che Argon2 (hashing delle password), WireGuard (VPN), Zcash (criptovaluta) e IPFS lo usano internamente. Per una nuova applicazione senza vincoli di compatibilità è spesso la scelta giusta; per dialogare con sistemi esistenti (certificati TLS, HTTPS, JWT) resta su SHA-256.
Posso usare questi hash per le password?
- No. Un semplice SHA-256, SHA-3 o BLAKE2b è troppo veloce: una GPU prova miliardi di password al secondo contro ognuno di questi. Salva le password con un hash lento pensato apposta, come bcrypt, scrypt o Argon2id, sempre con un salt diverso per ogni utente. Il generatore di hash per password di questo sito li calcola tutti e tre.
Perché lo SHA-256 di una stringa vuota è e3b0c442…?
- Perché quello è l'output definito di SHA-256 per la stringa vuota. Ogni algoritmo ha il suo (SHA-3-256 della stringa vuota inizia con a7ff…, BLAKE2b con 786a…). Se trovi questi valori in produzione senza aspettartelo, il tuo codice ha calcolato l'hash di un input nullo o vuoto, di solito segno che a monte qualcosa non leggeva il contenuto vero.
Algoritmi di hash a confronto
Lunghezza dell'output, stato di sicurezza e usi tipici di ogni algoritmo calcolato da questo strumento. Conoscere la lunghezza attesa è utile quando controlli hash ricevuti da fonti esterne.
| Algoritmo | Bit di output | Caratteri esadecimali | Stato | Uso tipico |
|---|---|---|---|---|
| MD5 | 128 | 32 | Rotto (collisioni dal 2004) | Checksum, ETag, chiavi di cache (mai per la sicurezza) |
| SHA-1 | 160 | 40 | Rotto (SHAttered, 2017) | ID degli oggetti git, vecchio TLS (da evitare nei sistemi nuovi) |
| SHA-256 | 256 | 64 | Sicuro | Certificati TLS, Bitcoin, integrità dei file, firme JWT |
| SHA-384 | 384 | 96 | Sicuro | Suite di cifratura TLS 1.3, alcuni standard governativi, Apple APNs |
| SHA-512 | 512 | 128 | Sicuro | Più veloce sulle CPU a 64 bit; stesso livello di sicurezza di SHA-256 |
| SHA-3 (256) | 256 | 64 | Sicuro | Costruzione sponge Keccak; riserva NIST per SHA-2, resiste alla length extension |
| BLAKE2b | 512 (predefinito) | 128 | Sicuro | Più veloce di SHA-256 sulle CPU moderne; usato da Argon2, WireGuard, Zcash, IPFS |
Per salvare le password usa un hash lento pensato apposta (bcrypt, scrypt, Argon2id), mai un hash crittografico semplice di questa tabella. Per controllare l'integrità di input non fidati usa SHA-256, SHA-512, SHA-3 o BLAKE2b; MD5 e SHA-1 vanno bene solo come checksum contro errori accidentali.