Vai al contenuto principale
Sicurezza e privacy

PBKDF2: hash e verifica password

Calcola un hash PBKDF2 con salt casuale, SHA-256 o SHA-512 e il numero di iterazioni raccomandato da OWASP, nel formato pbkdf2-sha256$…, poi verifica una password rispetto a esso. Elaborazione locale.

  • Appunti

Integra questo widget

Personalizza il risultato, controlla l’anteprima e copia il codice.

Anteprima

Tipo di codice di integrazione

Codice da copiare

Responsive e ridimensionato automaticamente da Bethemesh.

OWASP raccomanda 600.000 iterazioni per SHA-256 e 210.000 per SHA-512: più sono, più costa ogni tentativo di un attaccante.

Questo strumento ti è stato utile?

Come funziona questo strumento?

Questo strumento deriva un hash PBKDF2 da una password con un salt casuale e il numero di iterazioni raccomandato, poi verifica una password rispetto a un valore già codificato. È pensato per gli sviluppatori che implementano o fanno debug della memorizzazione delle password, preparano un account di test o vogliono capire l'effetto di salt e iterazioni.

PBKDF2, definito dalla RFC 8018 (PKCS #5 v2.1), applica una funzione HMAC alla password e al salt, poi reinserisce il risultato in HMAC centinaia di migliaia di volte: così ogni tentativo di un attaccante costa quanto un accesso legittimo. Lo strumento offre HMAC-SHA-256 con 600.000 iterazioni predefinite e HMAC-SHA-512 con 210.000, i minimi dell'OWASP Password Storage Cheat Sheet. Il salt casuale (da 8 a 128 byte, 16 per impostazione predefinita) rende ogni hash unico anche se due utenti hanno la stessa password, neutralizzando le rainbow table. La lunghezza della chiave derivata va da 16 a 128 byte, 32 per impostazione predefinita; come riferimento, PBKDF2-HMAC-SHA-256 di «password» con salt «salt», 1 iterazione e 32 byte dà 120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b.

Il risultato è codificato su una riga: pbkdf2-sha256$600000$<salt>$<hash>, con salt e hash in Base64URL. Questa stringa contiene tutto il necessario per verificare in seguito una password: algoritmo, iterazioni, salt e impronta attesa. In modalità verifica, lo strumento legge questi parametri, ricalcola la derivazione con la password inserita e confronta le due impronte in tempo costante, così la durata non rivela a quale byte divergono. Il calcolo usa la Web Crypto API (deriveBits), quindi la password non lascia mai il tuo dispositivo.

Come usare questo strumento

  1. Inserisci la password e i parametri

    Digita la password, scegli SHA-256 o SHA-512 e regola se serve la dimensione del salt, il numero di iterazioni e la lunghezza della chiave.

  2. Deriva l'hash

    Lo strumento genera un salt casuale, calcola PBKDF2 e mostra il valore codificato pbkdf2-sha256$iterazioni$salt$hash, pronto da copiare.

  3. Verifica una password

    Incolla un valore codificato esistente e la password da provare: il risultato indica se corrisponde, con l'algoritmo e le iterazioni letti dal valore.

Casi d’uso

Creare l'hash di un account amministratore di test

Genera un valore pbkdf2-sha256$… per inserire un utente direttamente in un database di sviluppo o in un file di seed, senza scrivere script.

Fare debug di un accesso che non riesce

Incolla l'hash salvato nel database e la password presunta: lo strumento ti dice se corrispondono, così sai se il problema è la password o il codice di verifica.

Misurare il costo delle iterazioni

Confronta il tempo di calcolo con 210.000 o 600.000 iterazioni sulla tua macchina per scegliere un'impostazione che resti comoda all'accesso e rallenti gli attacchi offline.

Consigli e buone pratiche

  • Non scendere sotto le iterazioni raccomandate per guadagnare qualche millisecondo: 600.000 per SHA-256 e 210.000 per SHA-512 sono minimi, da alzare regolarmente man mano che l'hardware diventa più veloce.
  • Non serve superare 32 byte di chiave con SHA-256 o 64 con SHA-512: oltre, PBKDF2 calcola un secondo blocco completo, raddoppiando il tuo costo senza rallentare un attaccante, a cui basta il primo blocco per provare una password.
  • Il formato pbkdf2-sha256$… somiglia a quelli di Django, passlib o Werkzeug ma non è identico: separatori e codifica di salt e hash cambiano, quindi verifica il formato atteso dalla tua libreria prima di importare un valore.

Domande frequenti

PBKDF2 è ancora sicuro nel 2026?

Sì, a patto di usare un numero di iterazioni elevato e un salt unico. Il suo limite è che non usa memoria, il che lo rende più facile da accelerare su GPU rispetto ad Argon2id o scrypt. Per questo OWASP raccomanda Argon2id come prima scelta e PBKDF2 soprattutto quando è richiesta la conformità FIPS-140.

Che differenza c'è tra PBKDF2, bcrypt e Argon2?

Tutte e tre sono funzioni lente pensate per le password. PBKDF2 regola solo il tempo di calcolo; bcrypt aggiunge un po' di memoria ma tronca le password a 72 byte; Argon2id, vincitore della Password Hashing Competition, regola sia il tempo sia la memoria. Il vantaggio di PBKDF2 è che è disponibile ovunque, anche in Web Crypto e nei moduli validati FIPS.

Quante iterazioni PBKDF2 bisogna usare?

L'OWASP Password Storage Cheat Sheet raccomanda almeno 600.000 iterazioni per PBKDF2-HMAC-SHA256 e 210.000 per PBKDF2-HMAC-SHA512. Il NIST SP 800-63B chiede semplicemente un costo tanto alto quanto le prestazioni del server lo consentono. In pratica, punta a circa 100 ms di calcolo per accesso sul tuo server.

Il salt deve restare segreto?

No, il salt è salvato in chiaro accanto all'hash, ed è proprio ciò che fa il valore pbkdf2-sha256$… Il suo compito è essere unico e casuale per ogni password, per impedire le tabelle precalcolate e nascondere il fatto che due utenti condividono la stessa password. Un segreto aggiuntivo conservato fuori dal database, detto pepper, è una protezione distinta e facoltativa.

Si può recuperare la password da un hash PBKDF2?

No, PBKDF2 è unidirezionale: un attaccante può solo indovinare password e ricalcolare la derivazione per ciascuna. Le iterazioni rendono costoso ogni tentativo, ma una password comune verrà comunque trovata in fretta. La robustezza finale dipende quindi anche dalla qualità della password.

Posso inserire una password reale in questo strumento?

Il calcolo avviene solo nel tuo browser con Web Crypto: né la password né l'hash vengono inviati. Per prudenza, usa comunque una password di prova quando generi esempi o condividi uno screenshot.

Strumenti correlati

Strumenti simili o complementari a questo.

Funziona bene con

Genera password sicure e casuali da 8 a 128 caratteri, con l’entropia indicata.

Sicurezza e privacyIn evidenzaUsa questo strumento

Verifica se due hash o somme di controllo coincidono, indipendentemente da maiuscole, spazi o due punti.

Sicurezza e privacyUsa questo strumento