Skip to main content

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.

  1. printf 'hello' | md5
  2. → 5d41402abc4b2a76b9719d911017c592
  3. printf 'hello' | shasum -a 256
  4. → 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
  5. ora cambia una lettera: printf 'hellp' | shasum -a 256
  6. → 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.