UTILS.
100% nel browser
🛡️

Generatore e verificatore di hash password Argon2

Calcola un hash di password Argon2id/i/d con memoria, iterazioni e parallelismo configurabili, o verifica una password rispetto a un hash codificato PHC. Lato client.

Le password sono sottoposte ad hashing al 100% nel tuo browser — nulla viene caricato.

— l'output appare qui —

Informazioni su questo strumento

Il Generatore e verificatore di hash password Argon2 calcola e verifica hash Argon2 interamente nel tuo browser. Argon2 ha vinto la Password Hashing Competition del 2015 ed è standardizzato in RFC 9106; a differenza di bcrypt è memory-hard, il che significa che il suo costo è dominato dall'uso della RAM, il che ostacola i sistemi di cracking GPU e ASIC. La modalità di generazione estrae 16 byte di salt casuali da crypto.getRandomValues ed esegue la variante selezionata con i tuoi parametri: t iterazioni (costo temporale), m memoria in KiB, p parallelismo (lanes), e la lunghezza dell'hash di output in byte.

Sono offerte tre varianti. Argon2id (la predefinita e la scelta raccomandata dalla RFC) è un ibrido che resiste sia agli attacchi side-channel sia a quelli time-memory trade-off; Argon2i è ottimizzato contro la fuga side-channel; Argon2d massimizza la resistenza al cracking GPU ma non è sicuro rispetto ai side-channel. Il risultato è una stringa PHC auto-descrittiva della forma $argon2id$v=19$m=65536,t=3,p=1$<salt base64>$<hash base64>, così che ogni parametro necessario per verificare viaggi all'interno dell'hash. I valori predefiniti (t=3, m=65536 KiB = 64 MiB, p=1) seguono il secondo profilo raccomandato della RFC 9106.

Poiché il lavoro viene eseguito come build WebAssembly priva di eval sotto la rigorosa policy di sicurezza del browser, la memoria viene allocata nella pagina: valori di m molto alti sono intensivi in RAM e possono essere lenti sui telefoni, quindi lo strumento avvisa oltre i 256 MiB. La modalità di verifica analizza la variante, la versione, m/t/p, il salt e il digest da un hash codificato, ricalcola con la password candidata, e riporta corrispondenza o nessuna corrispondenza. Le password sono sottoposte ad hashing al 100% nel tuo browser e nulla viene caricato.

Domande frequenti

Quale variante di Argon2 dovrei usare?
Argon2id è la predefinita e la raccomandazione della RFC 9106 per l'hashing delle password — combina la resistenza side-channel di Argon2i con la resistenza al cracking GPU di Argon2d. Usa Argon2i solo se hai specificamente bisogno di accesso alla memoria indipendente dai dati, e Argon2d solo in contesti senza rischio side-channel.
Cosa fanno le impostazioni di memoria, iterazioni e parallelismo?
La memoria (m, in KiB) è la RAM che l'hash riempie — il principale fattore di costo. Le iterazioni (t) sono il numero di passaggi effettuati su quella memoria. Il parallelismo (p) è il numero di lanes calcolate contemporaneamente. m e t più alti significano hash più forti e più lenti; i valori predefiniti sono m=65536 (64 MiB), t=3, p=1.
Perché un'impostazione di memoria alta è lenta o non responsiva?
Argon2 alloca realmente la memoria richiesta nel tuo browser, quindi un valore come 1 GiB (1048576 KiB) può bloccarsi o fallire sui dispositivi con poca RAM. Lo strumento avvisa oltre i 256 MiB. Riduci m se la generazione si blocca; i parametri sono comunque memorizzati nell'hash.
L'hash contiene tutto ciò che serve per verificarlo?
Sì. L'output codificato PHC incorpora la variante, la versione, i parametri m/t/p, il salt e il digest, quindi la verifica ha bisogno solo della password e di quell'unica stringa. Nulla viene inviato da nessuna parte — sia l'hashing sia la verifica vengono eseguiti localmente tramite WebAssembly.

Altri strumenti