Calcolo e confronto di più hash | MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt, Argon2id

Basta inserire un testo per calcolare contemporaneamente gli hash MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt e Argon2id e confrontarli affiancati. Il calcolo avviene interamente nel browser e il contenuto inserito non viene inviato a un server.

Consigli per il confronto fra hash

  • Senza dover cambiare algoritmo una volta alla volta, potete confrontare in un colpo solo i sette hash dello stesso input.
  • MD5 e SHA-1 sono veloci ma poco resistenti alle collisioni e oggi sono sconsigliati per conservare le password. Limitatene l'uso a compiti leggeri come il rilevamento di alterazioni nei file.
  • Per archiviare le password la raccomandazione attuale è usare bcrypt o Argon2id, che aggiungono un sale e permettono di regolare il costo di calcolo.
  • Il pulsante a destra di ogni hash lo copia con un clic: comodo per le verifiche su più algoritmi e per riportare i valori nella documentazione.

Domande frequenti

No. Tutti i calcoli avvengono nel browser tramite JavaScript e WebAssembly: né il testo inserito né gli hash vengono inviati o conservati su un server.

Entrambi gli algoritmi generano a ogni calcolo un sale casuale che incorporano nell'hash. Lo stesso input dà quindi risultati diversi: è il comportamento corretto previsto e serve a impedire gli attacchi con rainbow table.

Oggi la prima scelta è Argon2id, seguita da bcrypt, molto diffuso. MD5, SHA-1, SHA-256, SHA-512 e SHA-3 si calcolano troppo in fretta e da sole non sono adatte a questo scopo.

Sono sconsigliate dove la sicurezza è importante, come nell'archiviazione delle password e nelle firme digitali. Restano invece in uso per compiti leggeri che non presuppongono un attaccante, come la verifica dell'integrità di un file contro corruzioni accidentali.

Per regolare il fattore di costo di bcrypt o la memoria, le iterazioni e il parallelismo di Argon2, usate gli strumenti dedicati: hash bcrypt e calcolo dell'hash Argon2.
Tool-kun

A proposito — perché le funzioni hash vanno scelte in base all'uso

MD5, SHA-1, SHA-256, SHA-512 e SHA-3 appartengono tutte alla categoria delle «funzioni hash crittografiche», ma sono state progettate in epoche e con obiettivi diversi, e il livello di sicurezza varia moltissimo. Per MD5 (1992) e SHA-1 (1995) esistono già attacchi di collisione praticabili — la costruzione deliberata di due input diversi con lo stesso hash — e il loro impiego è vietato nei certificati digitali e nelle firme elettroniche. SHA-256, SHA-512 e SHA-3 sono invece tuttora considerate sicure e ampiamente usate dove la sicurezza conta davvero, dalle blockchain ai certificati TLS.

Anche una funzione «sicura» come SHA-256, però, non è adatta a conservare le password: è progettata per essere volutamente rapida, quindi un attaccante che tenti una forza bruta o usi rainbow table precalcolate può provare in poco tempo un numero enorme di candidati. bcrypt e Argon2 sono invece progettati per essere «volutamente lenti» e permettono, regolando i parametri di costo (i round di bcrypt, la memoria e le iterazioni di Argon2), di alzare il costo di calcolo di pari passo con l'evoluzione dell'hardware: è una differenza di fondo.

Argon2 ha vinto nel 2015 la Password Hashing Competition e si distingue per la «durezza in memoria», cioè la possibilità di imporre una quantità di memoria necessaria al calcolo. GPU e ASIC, specializzati nel calcolo parallelo, sono velocissimi ma hanno limiti di memoria: un algoritmo che ne consuma molta resiste quindi meglio di bcrypt agli attacchi con hardware dedicato, ed è per questo che OWASP lo raccomanda come prima scelta.