PK Systems PK Systems
Encoder e decoder

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.

Generatore e verifier di hash bcrypt

Il costo è logaritmico: ogni passo raddoppia il lavoro. 10 è un default moderno sicuro; 12 per i sistemi sensibili.

Hash bcrypt


        
    

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
416~1 ms
8256~15 ms
10 (default)1,024~60 ms
124,096~250 ms
138,192~500 ms
1416,384~1 s
1532,768~2 s

Domande frequenti

bcrypt è ancora sicuro nel 2026?
Sì. bcrypt con costo ≥10 resta un hash per password perfettamente accettabile. Argon2id è la prima scelta OWASP per i nuovi progetti, ma bcrypt va bene, è ben supportato e facile da auditare.
Dov'è il sale?
Il sale è codificato dentro l'hash stesso, tra il fattore di costo e il digest. La libreria lo estrae durante la verifica — non memorizzi mai il sale separatamente.
Qual è la lunghezza massima della password?
La maggior parte delle implementazioni bcrypt tronca silenziosamente la password a 72 byte. Pre-hasha le password lunghe (es. SHA-256) e codifica in base64 il risultato, oppure usa Argon2 se devi supportare password di lunghezza arbitraria.
Perché l'esecuzione ad alto costo è lenta?
Per design. Il punto di bcrypt è rendere costosi gli attacchi brute-force. Per mantenere reattiva la pagina, questo strumento esegue i costi ≥12 in un Web Worker così il browser resta usabile.
$2a$, $2b$ e $2y$ sono diversi?
$2a$ è l'originale (con un noto bug dell'era PHP per i caratteri a 8 bit), $2b$ è la versione corretta usata oggi ovunque, e $2y$ è un tag specifico di PHP fissato al comportamento senza bug. Il verifier li accetta tutti e tre.
La pagina invia la mia password da qualche parte?
No. Sia l'hashing che la verifica girano interamente sul tuo dispositivo. La tua password, hash e risultato di verifica non lasciano mai la pagina, non viaggiano mai sui nostri server e non vengono memorizzati, indicizzati, registrati o condivisi.