Generatore e verifier di hash bcrypt
Fai l'hash delle password con il bcrypt standard di settore e verifica una password in chiaro contro qualsiasi hash bcrypt. Costo regolabile.
Cos'è bcrypt?
bcrypt è una funzione di hashing per password progettata da Niels Provos e David Mazières nel 1999. Si basa sul cifrario Blowfish ed è volutamente lenta: un fattore di costo configurabile controlla quanti round di key-setup vengono eseguiti prima che l'hash sia prodotto, così i difensori possono continuare ad alzare il costo man mano che l'hardware accelera. Ogni hash incorpora anche un sale casuale di 128 bit, il che significa che fare l'hash della stessa password due volte produce due output diversi e le rainbow table pre-calcolate sono inutili. L'output appare come $2b$10$… dove 2b è la versione dell'algoritmo, 10 è il fattore di costo e il resto è sale e hash. bcrypt resta la scelta cavallo di battaglia per la memorizzazione delle password nel 2026: più semplice da usare di Argon2, più collaudata di scrypt e supportata in ogni linguaggio importante.
Come usarlo
Per fare l'hash, scrivi la password, scegli un fattore di costo e clicca su Genera hash. L'output va dritto nel tuo database. Per verificare, incolla l'hash dal database e scrivi la password candidata, poi clicca su Verifica. Bcrypt incorpora il fattore di costo dentro l'hash, quindi non lo scegli di nuovo in fase di verifica — la libreria lo legge dalla stringa.
Scegliere un fattore di costo
Ogni passo di costo raddoppia il tempo. Scegli il costo più alto che mantenga i login sotto i ~250 ms sul tuo hardware. Per login ad alto traffico su server commodity, 10 (≈60 ms) è il minimo moderno; 12 (≈250 ms) è una scelta confortevole per gli account sensibili; 13–15 è giustificato per credenziali critiche ma devi misurare la latenza. Aumenta il costo quando aggiorni il database — re-hasha al login successivo.
Riferimento del fattore di costo (CPU moderna, singolo thread)
| Costo | Iterazioni | Tempo approssimativo |
|---|---|---|
| 4 | 16 | ~1 ms |
| 8 | 256 | ~15 ms |
| 10 (default) | 1,024 | ~60 ms |
| 12 | 4,096 | ~250 ms |
| 13 | 8,192 | ~500 ms |
| 14 | 16,384 | ~1 s |
| 15 | 32,768 | ~2 s |