Generatore Argon2
Generate un hash di password Argon2id con un salt casuale di 16 byte e scegliete memoria, iterazioni, parallelismo e lunghezza dell'hash. La memoria è limitata a 64 MiB e le iterazioni a 4; i valori predefiniti seguono la configurazione di riferimento OWASP di 19 MiB e 2 passaggi. Lo strumento restituisce la stringa PHC standard che inizia con $argon2id$v=19$, verificabile con PHP, libsodium e le librerie argon2. La password non viene mai mostrata.
Domande frequenti
Che cos'è Argon2id?
Argon2 ha vinto la Password Hashing Competition nel 2015 ed è specificato nella RFC 9106. Argon2id è la variante ibrida che resiste sia agli attacchi side-channel sia a quelli tramite GPU. È la variante raccomandata da OWASP e dalla RFC per la memorizzazione delle password.
Che cosa significano le impostazioni di memoria, iterazioni e parallelismo?
La memoria determina quanti MiB vengono occupati da ogni hash, le iterazioni indicano quanti passaggi vengono eseguiti su quella memoria e il parallelismo stabilisce il numero di corsie. Più memoria e iterazioni rendono ogni tentativo più costoso per gli attaccanti. Qui la memoria va da 1 a 64 MiB, le iterazioni da 1 a 4 e il parallelismo da 1 a 4.
Quali impostazioni dovrei usare?
I valori predefiniti sono 19 MiB, 2 iterazioni e 1 corsia: il minimo OWASP per Argon2id. Il valore predefinito di PHP è 64 MiB con 4 iterazioni, configurazione che potete replicare anche qui. In produzione, usate per ogni accesso quanta più memoria i vostri server possono dedicare.
Perché memoria e iterazioni hanno un limite massimo?
Ogni hash alloca effettivamente la memoria richiesta ed esegue tutti i passaggi su un server condiviso. Il limite di 64 MiB e 4 iterazioni mantiene ogni richiesta sotto il secondo, pur coprendo le configurazioni di produzione più comuni.
Che cosa contiene la stringa di output?
Un risultato come $argon2id$v=19$m=19456,t=2,p=1$ seguito dal salt e dall'hash elenca la variante, la versione, la memoria in KiB, le iterazioni e le corsie. Salt e hash sono in Base64 senza padding. Memorizzate l'intera stringa, perché la verifica legge da essa tutti i parametri.
Perché l'hash è diverso ogni volta?
Ogni richiesta usa un nuovo salt casuale di 16 byte, quindi la stessa password produce ogni volta una stringa diversa. Tutte le stringhe vengono verificate correttamente con la password giusta.
Posso scegliere la lunghezza dell'hash?
Sì, da 16 a 64 byte, con 32 byte come valore predefinito. Tag più lunghi non rendono più difficile indovinare la password, quindi 32 byte sono sufficienti per memorizzarla.
Quali sistemi accettano questi hash?
PHP password_verify, crypto_pwhash_str_verify di libsodium, il pacchetto argon2 per Node.js, argon2-cffi per Python e Spring Security leggono tutti il formato PHC string. Anche Argon2 Verifier su questo sito li controlla.
La mia password viene memorizzata o restituita?
No. La password viene usata solo in memoria per calcolare l'hash e rimossa dalla risposta. Non viene mai registrata né salvata.
Posso generare hash Argon2i o Argon2d?
No. Lo strumento produce solo Argon2id, perché è la variante consigliata per le password. Argon2 Verifier accetta comunque hash Argon2i e Argon2d.