Cosa fa
bcrypt è una funzione di hash per password progettata per essere lenta. A differenza di MD5 o SHA-256, calcolabili miliardi di volte al secondo, bcrypt ha un costo configurabile che rende costoso ogni tentativo per chi ruba il tuo database. Insieme ad Argon2 e scrypt è ancora una delle scelte più diffuse per conservare le password.
Questo strumento fa due cose:
- Genera hash: trasforma una password in un hash bcrypt con il costo e il prefisso di versione scelti.
- Verifica: controlla se una password corrisponde a un hash bcrypt esistente, per esempio del tuo database o del file di seed di un framework.
Come si usa
- Digita una Password o fai clic su Esempio.
- In modalità Genera hash scegli Costo e Versione. L’hash compare subito; fai clic su Nuovo salt per ottenerne un altro.
- In modalità Verifica incolla l’Hash bcrypt da verificare. Il risultato indica se la password corrisponde.
Leggere un hash bcrypt
Un hash come $2b$10$./3kakECWB0QfIgYzIqciuv449HNnwGbgExtJQQwQ1MofonthOdoK ha quattro parti: la versione 2b, il costo 10 (2¹⁰ round di preparazione della chiave), un salt di 22 caratteri e un checksum di 31 caratteri. Tutto ciò che serve al server per verificare in seguito la password è in questa stringa, quindi conservi solo l’hash.
Limiti da conoscere
bcrypt legge solo i primi 72 byte di una password. Le password più lunghe, o con molti caratteri non ASCII (2–4 byte ciascuno in UTF-8), vengono troncate senza avviso. Lo strumento ti avverte quando succede. Se devi accettare passphrase molto lunghe, applica prima un pre-hash o valuta Argon2id.
Domande frequenti
› Perché la stessa password produce ogni volta un hash diverso?
Ogni hash usa un nuovo salt casuale di 16 byte, salvato dentro l’hash stesso. È voluto: password uguali non producono hash uguali. Per controllare una password usa Verifica invece di confrontare le stringhe degli hash.
› Che costo conviene usare?
Scegli il costo più alto che il server può permettersi a ogni accesso, oggi di solito tra 10 e 12. Ogni passo raddoppia il lavoro. Misura sull’hardware di produzione; 100–300 ms per hash è un obiettivo comune.
› Che differenza c’è tra $2a$, $2b$ e $2y$?
È lo stesso algoritmo. $2b$ è il prefisso attuale di OpenBSD, $2y$ è quello scritto da password_hash di PHP e $2a$ è il più vecchio. La maggior parte delle librerie li accetta tutti e tre: scegli quello che il tuo sistema si aspetta.
› La mia password viene inviata da qualche parte?
No. Hash e verifica avvengono nel browser. La password e l’hash controllato restano solo nella memoria di questa pagina; non vengono salvati né aggiunti ai link di condivisione.