Genera hash MD5, SHA-1, SHA-256, SHA-384 e SHA-512.
Tutti i calcoli sono eseguiti localmente nel tuo browser. Nessun dato viene inviato al server.
I risultati hanno carattere informativo. Verificali con altre fonti.
Le funzioni di hash e a cosa servono
Una funzione di hash trasforma un input qualsiasi in un'impronta di lunghezza fissa. Lo stesso input dà sempre lo stesso digest; un carattere cambiato ne dà uno del tutto diverso. Gli hash verificano che i dati non siano cambiati: non servono a conservare password.
Come funziona
- MD5 produce 128 bit (32 caratteri esadecimali), SHA-1 160, SHA-256 256.
- La lunghezza dell'output è fissa a prescindere dall'input: un file da un byte e uno da un gigabyte danno entrambi 64 caratteri con SHA-256.
- La funzione è unidirezionale per progetto. Non esiste operazione che recuperi l'input dal digest.
- È deterministica, quindi lo stesso file calcolato su due macchine deve dare un risultato identico: è ciò che rende utili i checksum.
MD5 → 128 bit → 32 car. hex (compromesso, non per la sicurezza) SHA-1 → 160 bit → 40 car. hex (compromesso, non per la sicurezza) SHA-256 → 256 bit → 64 car. hex (riferimento attuale)
Esempio pratico
Hash della stringa di cinque caratteri hello con ciascun algoritmo. Riproducibile da terminale.
- printf 'hello' | md5
- → 5d41402abc4b2a76b9719d911017c592
- printf 'hello' | shasum -a 256
- → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
- ora cambia una lettera: printf 'hellp' | shasum -a 256
- → un digest del tutto slegato, senza prefisso in comune
Un solo carattere cambiato produce un digest completamente diverso. Questa proprietà a valanga consente a un checksum di rilevare un singolo byte corrotto in un download di grandi dimensioni.
Come leggere il risultato
- Non usarle mai per l'hash di una password. MD5, SHA-1 e SHA-256 sono progettate per essere veloci, e la velocità con le password è esattamente ciò che non serve: una GPU moderna prova miliardi di tentativi SHA-256 al secondo. Usa bcrypt, scrypt o Argon2, volutamente lente e con salt.
- MD5 e SHA-1 sono compromesse per la sicurezza: esistono collisioni pratiche, cioè due input diversi possono condividere lo stesso digest. Restano accettabili come checksum non avversariali per rilevare corruzioni accidentali.
- Un hash non è cifratura. Non c'è chiave né via di ritorno: è lo scopo, non un limite.
- Confrontare un digest calcolato con quello pubblicato dalla fonte prova l'integrità solo se quel digest è arrivato per un canale che un attaccante non poteva alterare a sua volta.
Domande frequenti
- Posso invertire un hash per ottenere il testo?
- Matematicamente no. I siti che lo promettono in realtà cercano il tuo digest in una tabella precalcolata di input comuni. Funziona per password e parole di dizionario, ed è proprio per questo che le password richiedono una funzione lenta e con salt.
- Quale algoritmo dovrei usare?
- SHA-256 per checksum e integrità. bcrypt o Argon2 per le password. MD5 solo quando lo impone qualcosa di legacy e nulla di rilevante per la sicurezza vi dipende.