internettoolbox
← Torna agli strumenti

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.

AlgoritmoBit di outputCaratteri esadecimaliStatoUso tipico
MD512832Rotto (collisioni dal 2004)Checksum, ETag, chiavi di cache (mai per la sicurezza)
SHA-116040Rotto (SHAttered, 2017)ID degli oggetti git, vecchio TLS (da evitare nei sistemi nuovi)
SHA-25625664SicuroCertificati TLS, Bitcoin, integrità dei file, firme JWT
SHA-38438496SicuroSuite di cifratura TLS 1.3, alcuni standard governativi, Apple APNs
SHA-512512128SicuroPiù veloce sulle CPU a 64 bit; stesso livello di sicurezza di SHA-256
SHA-3 (256)25664SicuroCostruzione sponge Keccak; riserva NIST per SHA-2, resiste alla length extension
BLAKE2b512 (predefinito)128SicuroPiù 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.

Cambia strumento

Cerca e apri qualsiasi strumento