Come si usa
- Incolla un solo hash. Rimuovi etichette come 0x, sha256= o sha384-, ma lascia intatti gli hash di password, compreso un eventuale $, { o * iniziale.
- Leggi il risultato: la forma rilevata e la sua dimensione in bit, poi gli algoritmi possibili, con i più probabili contrassegnati come Più probabile. Il fattore di costo di bcrypt, o i round di sha256crypt, sha512crypt e PBKDF2, viene mostrato quando la stringa lo contiene.
- Per i candidati MD5, SHA-1, SHA-256, SHA-512, CRC-32 e CRC-32C, il pulsante Apri strumento ti porta al calcolatore corrispondente.
- Se conosci o sospetti il testo originale, digitalo in Verifica con un testo per vedere quale algoritmo riproduce l’hash.
Come si identifica un hash
Ogni algoritmo di hash ha una dimensione di output fissa e la notazione esadecimale usa due caratteri per byte, quindi la lunghezza di una stringa esadecimale è l’indizio più forte. Lo strumento controlla anche il set di caratteri e cerca i prefissi che i formati di hash per password inseriscono all’inizio.
| Caratteri esadecimali | Bit | Algoritmi comuni |
|---|---|---|
| 8 | 32 | CRC-32, CRC-32C e Adler-32 |
| 32 | 128 | MD5, NTLM e MD4 |
| 40 | 160 | SHA-1 e RIPEMD-160 |
| 56 | 224 | SHA-224 e SHA3-224 |
| 64 | 256 | SHA-256, SHA3-256, BLAKE2s e Keccak-256 |
| 96 | 384 | SHA-384 e SHA3-384 |
| 128 | 512 | SHA-512, SHA3-512, BLAKE2b e Whirlpool |
La sola lunghezza non basta a risolvere la questione, perché un buon hash sembra un dato casuale e non porta alcun segno del proprio algoritmo. Un valore di 32 caratteri potrebbe essere MD5, MD4 o NTLM, che Windows usa per le password degli account (MD4 della password in UTF-16LE). Per questo lo strumento ordina i candidati in base alla loro diffusione: prima MD5, oppure prima NTLM quando l’hash è tutto in maiuscolo, come lo stampano alcuni strumenti di estrazione delle password di Windows. Allo stesso modo, il Keccak-256 di Ethereum e lo SHA3-256 standardizzato differiscono solo nel padding, eppure entrambi producono 64 caratteri esadecimali.
Digest Base64 e formati di hash per password
Alcuni sistemi scrivono i digest in Base64 invece che in esadecimale: 24 caratteri per 16 byte (MD5, come nell’header Content-MD5), 28 per SHA-1, 44 per SHA-256, 64 per SHA-384 (come negli attributi Subresource Integrity) e 88 per SHA-512. Lo strumento riconverte la lunghezza in byte ed elenca gli stessi candidati. Il padding mancante e i caratteri sicuri per URL sono accettati, ma rimuovi prima un eventuale prefisso come sha384-.
I formati di hash per password si descrivono da soli: un prefisso indica l’algoritmo, e il salt e i parametri di costo sono scritti nella stringa stessa. Quelli moderni usano un salt e sono volutamente lenti; i formati LDAP e MySQL delle ultime due righe sono invece costruzioni veloci basate su SHA-1, e solo {SSHA} aggiunge un salt.
| Inizia con | Formato | Dove si trova di solito |
|---|---|---|
$2a$, $2b$, $2y$ | bcrypt, sempre di 60 caratteri; le due cifre successive sono il fattore di costo e ogni incremento raddoppia il lavoro | Framework web, PHP password_hash() |
$argon2id$ | Argon2id con parametri di memoria (m), tempo (t) e parallelismo (p) | Applicazioni moderne; raccomandato da OWASP |
$6$, $5$ | sha512crypt, sha256crypt, con rounds= facoltativo | /etc/shadow su Linux |
$y$ | yescrypt | /etc/shadow su molte distribuzioni Linux attuali |
$1$, $apr1$ | md5crypt, Apache MD5 | Sistemi Unix meno recenti, .htpasswd |
pbkdf2_sha256$ | PBKDF2-SHA256 con il numero di iterazioni | Django |
{SHA}, {SSHA} | SHA-1, SHA-1 con salt | Directory LDAP |
* e 40 cifre esadecimali | MySQL 4.1+ PASSWORD() | Tabelle degli utenti di MySQL |
Identificare un hash non significa violarlo
Un hash è unidirezionale. L’identificatore guarda solo la forma della stringa: non può rivelare, decifrare o cercare l’input, e non invia nulla a un server o a un database online. L’unico modo per trovare un input è provare dei candidati e calcolare l’hash di ciascuno, ed è ciò che fanno gli strumenti di recupero password come hashcat e John the Ripper una volta noto l’algoritmo. I formati lenti e con salt come bcrypt e Argon2 esistono proprio per rendere costosi questi tentativi. Analizza solo hash su cui sei autorizzato a lavorare.
Verifica con un testo mette alla prova un’ipotesi precisa. Calcola l’hash del testo che digiti, in UTF-8, con MD5, SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 e CRC-32C, e ti dice quale risultato coincide con l’hash, che sia scritto in esadecimale maiuscolo o minuscolo oppure in Base64. Non può confermare hash di password con salt né HMAC, perché dipendono anche da un salt o da una chiave segreta; per un valore calcolato con una chiave usa il generatore HMAC insieme alla chiave.
Domande frequenti
Questo strumento può dirmi il testo o la password originale?
No. Indica solo l’algoritmo probabile. Le funzioni di hash non si possono invertire: i "decifratori di hash" online cercano il valore in tabelle di hash di parole comuni e di password trapelate, il che funziona solo con input deboli e senza salt.
Perché per un solo hash vengono elencati più algoritmi?
Gli algoritmi con la stessa dimensione di output producono stringhe con la stessa lunghezza e lo stesso set di caratteri, e nulla all’interno dell’hash registra quale sia stato usato. Il candidato più probabile compare per primo, in base alla diffusione di ciascun algoritmo. Per avere la certezza, ricalcola l’hash a partire da un input noto.
Una stringa esadecimale di 32 caratteri è sempre MD5?
Di solito sì, ma non sempre. NTLM, MD4, MD2 e RIPEMD-128 producono la stessa lunghezza, così come qualsiasi valore a 128 bit scritto in esadecimale, per esempio un UUID senza trattini o un token casuale. Decide il contesto: un hash di password di Windows indica NTLM, un checksum di un file indica MD5.
Perché Verifica con un testo non trova corrispondenze?
echo ne aggiunge uno, a meno che tu non usi echo -n o printf), spazi o maiuscole e minuscole diversi, un testo di cui è stato calcolato l’hash con una codifica diversa da UTF-8, un salt o una chiave come negli hash di password e negli HMAC, oppure un algoritmo non coperto dalla verifica, come SHA-3, BLAKE2 o NTLM.È sicuro incollare qui un hash di password?
L’analisi avviene interamente nel tuo browser e l’hash non viene trasmesso né memorizzato. Tuttavia un hash di password preso da un sistema reale permette a chiunque lo possieda di fare tentativi offline, quindi tratta questi hash come dati sensibili e tienili fuori da ticket, chat e screenshot.