In questo articolo
Cos'e bcrypt?
bcrypt e una funzione di hashing adattiva per password progettata nel 1999. Basata sul cifrario Blowfish, bcrypt incorpora un salt e un fattore di costo configurabile che controlla la complessita computazionale dell'hash.
A differenza delle funzioni hash veloci come MD5 o SHA-256, bcrypt e progettata specificamente per l'archiviazione delle password. La sua natura adattiva permette di aumentare il fattore di costo nel tempo.
Come funziona bcrypt
Un hash bcrypt contiene tutte le informazioni per verificare una password in una singola stringa.
- $2b$ — l'identificatore dell'algoritmo bcrypt versione 2b
- 10$ — il fattore di costo (2^10 = 1024 round)
- 22 caratteri di salt codificato in Base64 (128 bit di casualita)
- 31 caratteri di output hash codificato in Base64
Prova gratuitamente — nessuna registrazione richiesta
Genera hash bcrypt →Scegliere il giusto fattore di costo
Il fattore di costo determina quante iterazioni bcrypt esegue internamente. Ogni incremento raddoppia il tempo di calcolo.
L'obiettivo e rendere l'hashing abbastanza lento da scoraggiare gli attacchi brute-force ma veloce per l'esperienza utente.
- Costo 10 — hash in ~100ms; buona base per la maggior parte delle applicazioni web
- Costo 12 — hash in ~300-400ms; raccomandato per alta sicurezza
- Costo 14+ — hash in 1 secondo o piu; generalmente troppo lento per il login interattivo
bcrypt vs altri algoritmi di hashing
Non tutti gli algoritmi di hashing sono adatti per l'archiviazione delle password.
- MD5/SHA-256 — progettati per la velocita; mai usare per le password
- bcrypt — resistente alla CPU, collaudato dal 1999; la raccomandazione predefinita
- Argon2 — vincitore della Password Hashing Competition 2015; resistente alla memoria; raccomandato per nuovi progetti
Casi d'uso comuni
bcrypt viene usato ovunque le password debbano essere archiviate in modo sicuro.
- Registrazione utente — hash della password con bcrypt prima di salvarla nel database
- Verifica login — hash della password inviata e confronto con l'hash memorizzato
- Migrazione password — nell'aggiornamento da MD5/SHA a bcrypt, rehash al prossimo login riuscito
Domande frequenti
Posso cambiare il fattore di costo senza resettare le password?
Si. Ad ogni login riuscito, controlla se l'hash memorizzato usa un vecchio fattore di costo. Se si, rehash la password con il nuovo fattore. Questo si chiama rehashing opportunistico.
Come verifico una password contro un hash bcrypt?
La stringa hash bcrypt contiene versione, fattore di costo e salt. La funzione di verifica li estrae, esegue l'hash della password candidata con gli stessi parametri e confronta in tempo costante.
Dovrei usare bcrypt o Argon2?
Entrambi sono ottime scelte. bcrypt e collaudato da oltre 25 anni. Argon2 e piu recente e resistente alla memoria. Per nuovi progetti, Argon2id e raccomandato. bcrypt rimane perfettamente sicuro con fattore di costo 10 o superiore.