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.
Cos'è il calcolo di hash in blocco
Questo strumento permette di inserire un solo testo e vedere subito i risultati di sette algoritmi di hash contemporaneamente — MD5, SHA-1, SHA-256, SHA-512, SHA-3, bcrypt e Argon2id — affiancati per il confronto. Invece di passare da una pagina all'altra e reinserire lo stesso testo per ogni algoritmo, vedete immediatamente come lunghezza e formato dell'output differiscono tra loro.
Tutto il calcolo avviene interamente nel browser tramite JavaScript/WebAssembly, quindi né il testo inserito né gli hash risultanti vengono mai inviati a un server. bcrypt e Argon2id usano un sale casuale a ogni esecuzione, per cui l'output cambia ogni volta anche con lo stesso input: è un comportamento corretto e previsto, non un errore.
Come calcolare più hash contemporaneamente
- Inserite il testo Digitate il testo da elaborare nel campo di inserimento.
- Cliccate su «Calcola tutti» In questo modo vengono eseguiti tutti e sette gli algoritmi contemporaneamente.
- Confrontate i risultati Osservate la tabella per vedere come lunghezza e formato dell'output differiscono tra gli algoritmi.
- Copiate l'hash che vi serve Usate il pulsante di copia su una riga per salvare quell'hash negli appunti.
Consigli per sfruttarlo al meglio
- 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.
Scenari d'uso comuni
Verificare valori provenienti da un sistema legacy
Controllate se un hash salvato da un vecchio sistema con MD5 o SHA-1 corrisponde a un valore ricalcolato da un'implementazione più recente.
Scegliere un algoritmo per un nuovo progetto
Confrontate output reali affiancati mentre decidete quale algoritmo si adatta meglio ai vostri requisiti di sicurezza.
Preparare più formati di checksum in una volta
Quando un processo di distribuzione dei file richiede più di un formato di hash, ottenete tutti i valori da un unico inserimento.
Insegnare o studiare le basi della crittografia
Osservate come algoritmi diversi trasformano lo stesso input, così da capire meglio le differenze pratiche fra le funzioni hash.
Glossario
- Sale (Salt)
- Un valore casuale aggiunto all'input prima del calcolo dell'hash. Fa sì che lo stesso input produca un hash diverso ogni volta, vanificando gli attacchi con rainbow table.
- Resistenza alle collisioni
- Quanto è difficile trovare due input diversi che producono lo stesso hash. MD5 e SHA-1 sono considerati deboli su questo fronte perché contro di loro sono già state dimostrate collisioni praticabili.
- Key stretching
- Il ripetere o rallentare deliberatamente il processo di hashing per rendere più difficili gli attacchi a forza bruta. È il meccanismo centrale di bcrypt e Argon2.
- Durezza in memoria
- Una proprietà che richiede una quantità definita di memoria durante il calcolo, aumentando la resistenza agli attacchi a forza bruta paralleli su GPU e ASIC. È una caratteristica distintiva di Argon2.
- Rainbow table
- Una tabella precalcolata che associa grandi quantità di testo in chiaro ai relativi hash, usata per risalire rapidamente dall'hash al testo originale.
Domande frequenti
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.