Hash/Crittografia
PBKDF2 Hash + Verify
Deriva una chiave con PBKDF2 (RFC 8018) da una password, HMAC-SHA1/256/384/512, con numero di iterazioni configurabile.
PBKDF2 (RFC 8018) applies HMAC to a password and salt repeatedly to deliberately slow down computation — it's the oldest of the standardized algorithms for password hashing and encryption key derivation.
How to use it
- Derive: enter a password, pick an HMAC algorithm (SHA-1/256/384/512), and set the iteration count to get a derived key of the requested length.
- Verify: paste a password and an existing PBKDF2 hash to check whether they match, without recomputing it manually.
- More iterations means slower, more secure computation — tune the value to your server's response-time budget.
Common uses
- Deriving an encryption key from a user's password for a file container or a custom protocol.
- Checking a PBKDF2 implementation for compatibility across programming languages (the parameters must match exactly).
- Hashing passwords in systems that require a FIPS-compliant algorithm (PBKDF2 is NIST-approved).
Things to keep in mind
Unlike bcrypt and Argon2, PBKDF2 isn't memory-hard — it only requires CPU time, so it's less resistant to attacks on GPUs with many parallel compute units.
The recommended iteration count rises over time in NIST and OWASP guidance as hardware gets faster — check against current recommendations periodically.
Articolo su questo strumento: PBKDF2: lo standard più vecchio per lo stretching delle chiavi
Domande frequenti
In cosa differisce PBKDF2 da bcrypt o Argon2 per l'hashing delle password?
PBKDF2 applica ripetutamente una funzione hash HMAC per rallentare il brute-force, ma a differenza di bcrypt o Argon2 non richiede molta memoria, rendendolo comparativamente più economico da violare con le GPU. È ancora ampiamente usato e approvato FIPS, ma Argon2 è generalmente preferito per i nuovi sistemi.
Cosa controlla il numero di iterazioni, e quanto dovrebbe essere alto?
Il numero di iterazioni imposta quante volte viene applicato l'hash sottostante, scambiando direttamente velocità con resistenza al brute-force. Le linee guida attuali raccomandano centinaia di migliaia di iterazioni per SHA-256, aumentate nel tempo man mano che l'hardware migliora.
Perché PBKDF2 ha bisogno di un salt?
Un salt garantisce che password identiche producano output diversi, impedendo agli attaccanti di usare rainbow table precalcolate e costringendoli ad attaccare ogni hash individualmente.
La funzione hash di base usata da PBKDF2 fa differenza?
Sì. Le vecchie implementazioni spesso usavano HMAC-SHA1 come predefinito — nella costruzione HMAC non è una vulnerabilità critica, ma le raccomandazioni moderne consigliano nettamente HMAC-SHA256 o superiore per un margine di sicurezza maggiore senza una perdita di velocità significativa.
Dove viene usato PBKDF2 oltre alla memorizzazione delle password?
PBKDF2 è ampiamente usato per derivare chiavi crittografiche di cifratura dalle password — ad esempio in WPA2/WPA3 per il Wi-Fi e in molti formati di contenitori di file cifrati.