Hash/Crittografia

Argon2 Hash + Verify

Applica l'hash alle password con Argon2 (vincitore della Password Hashing Competition, RFC 9106) — varianti d/i/id, con verifica rispetto a un hash esistente.


                    

Argon2 is the Password Hashing Competition winner and the algorithm recommended in RFC 9106 for hashing passwords. Unlike bcrypt, it deliberately demands a lot of memory, not just CPU time, which makes attacks on specialized hardware (GPUs, ASICs) much harder.

How to use it

Common uses

Things to keep in mind

The memory parameter is Argon2's main defense: the more memory hashing requires, the more expensive it is for an attacker to parallelize an attack on a GPU with limited fast memory per chip.

Argon2id is recommended for most cases: Argon2i resists side-channel attacks better, Argon2d resists GPU attacks better, and id combines both approaches.

Articolo su questo strumento: Argon2: perché questo algoritmo ha vinto il concorso sull'hashing delle password

Domande frequenti

Perché Argon2 è consigliato rispetto ad hash più vecchi come MD5 o SHA-256 per le password?

Argon2 è deliberatamente lento e richiede molta memoria, rendendo il brute-force e il cracking basato su GPU/ASIC molto più costosi, a differenza di hash generici veloci come MD5 o SHA-256, inadatti a conservare le password.

Cosa controllano i parametri di memoria, iterazioni e parallelismo?

Il costo di memoria stabilisce quanta RAM richiede ogni tentativo di hash, le iterazioni controllano quanti passaggi vengono eseguiti, e il parallelismo il numero di thread — aumentare uno qualsiasi alza il costo del cracking a scapito di un hashing più lento.

Quale variante di Argon2 dovrei usare — d, i o id?

Argon2id è la variante predefinita consigliata per l'hashing delle password, poiché combina la resistenza di Argon2i agli attacchi side-channel con la resistenza di Argon2d al cracking via GPU.

Da dove viene Argon2 come standard?

Argon2 ha vinto la Password Hashing Competition del 2015 — una competizione aperta di crittografi il cui obiettivo era trovare il miglior algoritmo per l'hashing delle password. Da allora OWASP lo raccomanda come scelta prioritaria rispetto a bcrypt.

Il parametro di parallelismo accelera solo l'hashing?

No, lo stesso parametro accelera allo stesso modo il brute-force per un attaccante con hardware multi-core, quindi il parallelismo va scelto in base al numero reale di core del server, non aumentato senza necessità.

Articoli: Hash/Crittografia

Hash Generator: in cosa differiscono MD5, SHA-1 e SHA-256

Perché MD5 viene ancora usato per verificare l'integrità dei file, ma non per le password.

Checksum Verifier: come verificare che un file non sia danneggiato

Perché un checksum corrispondente conferma l'integrità di un file, ma non chi lo ha creato.

HMAC: in cosa differisce un hash con chiave da un hash normale

Perché un semplice SHA-256 non protegge dalla manomissione di un messaggio, ma HMAC sì.

Bcrypt: perché le password vengono hashate lentamente, non velocemente

Perché un SHA-256 veloce è una cattiva scelta per le password, e un bcrypt lento è quella giusta.

UUID: come vengono generati identificatori che quasi non si ripetono mai

Perché un UUID v4 può essere generato in modo indipendente su milioni di macchine senza rischio di collisione.

Generatore di password: cosa rende davvero forte una password

Perché una password lunga fatta di parole del dizionario è più forte di una corta con simboli e numeri.

AES: come funziona la crittografia simmetrica

Perché la stessa chiave cifra e decifra i dati in AES, e come questo differisce dalla crittografia asimmetrica.

Scrypt: perché l'algoritmo ha bisogno di così tanta memoria

Perché scrypt richiede deliberatamente molta memoria per rendere più difficile il cracking su dispositivi ASIC.

TOTP: come funzionano i codici monouso nelle app di autenticazione

Perché il codice di Google Authenticator funziona senza internet e si sincronizza col server solo tramite l'ora.

PBKDF2: lo standard più vecchio per lo stretching delle chiavi

Perché il numero di iterazioni raccomandato per PBKDF2 cresce ogni anno.

X.509: cosa c'è dentro un certificato SSL

Cosa controlla esattamente il browser nel certificato di un sito prima di mostrare il lucchetto verde.

PGP: come funziona la crittografia a chiave pubblica e privata

Perché si può condividere liberamente una chiave pubblica PGP, ma mai quella privata.