Identificatore di hash | Riconosce MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt e Argon2

Basta incollare una stringa che sembra un hash: dalla lunghezza, dai caratteri usati e dal prefisso lo strumento indica con quale algoritmo è stata probabilmente generata fra MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt e Argon2. Il riconoscimento avviene interamente nel browser.

Un hash non contiene al proprio interno il nome dell'algoritmo con cui è stato generato. Poiché più algoritmi possono condividere la stessa lunghezza di output, questo esito è la «supposizione più probabile» ricavata da lunghezza, caratteri e prefisso, non una certezza assoluta.

Consigli per il riconoscimento

  • Il riconoscimento si basa soltanto su lunghezza, insieme di caratteri (esadecimale o Base64) e prefisso: l'hash non viene ricalcolato per una verifica. Lo strumento propone i «candidati deducibili dal formato».
  • bcrypt ($2a$, $2b$, $2y$) e Argon2 ($argon2id$ e simili) incorporano nel prefisso il nome dell'algoritmo e i parametri, quindi il riconoscimento è molto affidabile.
  • Una stringa esadecimale di 64 cifre è nella maggior parte dei casi SHA-256, ma anche SHA3-256 ha la stessa lunghezza: se conoscete il sistema di origine (linguaggio, libreria), tenetene conto.
  • Potete incollare direttamente anche elenchi di hash su più righe, separati da a capo o spazi: gli spazi interni vengono rimossi automaticamente prima dell'analisi.
  • Se l'esito non vi convince, il modo più sicuro resta consultare l'origine dell'hash, cioè il codice sorgente o la documentazione dell'applicazione.

Domande frequenti

Dal solo hash non è possibile. Esistono algoritmi con output della stessa identica lunghezza, come SHA-256 e SHA3-256, quindi l'output da solo non basta. Per averne certezza occorre consultare il codice sorgente o la documentazione dell'applicazione che ha generato l'hash.

Perché sono progettati appositamente per conservare le password e adottano il «formato modular crypt», che incorpora in testa all'hash il nome dell'algoritmo e i parametri, come $2b$ o $argon2id$. Finché queste informazioni sono leggibili, l'algoritmo è determinabile in modo univoco.

No. Lo strumento si limita a dedurre il tipo di algoritmo dall'aspetto dell'hash e non offre alcuna funzione per recuperare i dati originali, come gli attacchi a forza bruta.

MD5 e SHA-1 hanno una resistenza alle collisioni ormai compromessa: se li trovate usati per conservare password, trattateli come un rischio di sicurezza. Come destinazione della migrazione si consiglia il passaggio a bcrypt o Argon2id, progettati proprio per le password.

Sì. Con lo strumento calcolo e confronto di più hash potete inserire lo stesso testo, calcolare i valori MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt e Argon2id e confrontarli con questo esito.
Tool-kun

A proposito — perché da un hash non si può stabilire con certezza l'algoritmo

Il compito di una funzione hash è trasformare i dati in ingresso in un output di lunghezza fissa, e quell'output non contiene alcun metadato sul nome dell'algoritmo. È una conseguenza necessaria del progetto: incorporare metadati cambierebbe la lunghezza del risultato e farebbe cadere la proprietà fondamentale della lunghezza fissa. L'unico appiglio che ci resta è dunque l'aspetto dell'output: quanti caratteri sono e di che tipo.

Il limite emerge con particolare evidenza nel rapporto fra la famiglia SHA-2 e quella SHA-3. SHA-256 e SHA3-256 hanno strutture interne completamente diverse — Merkle–Damgård la prima, la costruzione a spugna la seconda — eppure sono entrambe progettate per produrre 256 bit, cioè 64 cifre esadecimali. Lo stesso vale per SHA-224 e SHA3-224, SHA-384 e SHA3-384, SHA-512 e SHA3-512: dalla sola lunghezza non si può decidere. Nella pratica la famiglia SHA-2 è di gran lunga più diffusa e per questo, a parità di lunghezza, lo strumento la propone come candidata principale: resta però una supposizione fondata su una tendenza statistica.

Algoritmi pensati specificamente per le password, come bcrypt e Argon2, risolvono invece l'ambiguità adottando il «formato modular crypt», autodescrittivo. Scrivendo in testa all'hash il nome dell'algoritmo, la versione e i parametri — come in $2b$12$… o $argon2id$v=19$… — il metodo di calcolo si ricostruisce in modo univoco dal solo hash. Di fronte a un formato simile, il riconoscimento diventa certo.

Un lavoro di questo tipo serve davvero in situazioni concrete: l'analisi di un archivio di password recuperato da un sistema datato, oppure le sfide di crittanalisi delle competizioni di sicurezza CTF (Capture The Flag). Restringere il campo degli algoritmi permette infatti di scegliere in modo efficiente lo strumento di analisi successivo e la modalità d'attacco, per esempio in Hashcat.