Generatore e verificatore di hash Bcrypt
Genera e verifica hash bcrypt delle password online: costo regolabile, prefissi $2b$/$2a$/$2y$. 100% nel tuo browser; la password non viene mai caricata.
Cos'è Bcrypt?
Bcrypt è una funzione di hashing delle password progettata specificamente per memorizzare le password in modo sicuro. Invece di conservare una password in chiaro, un server memorizza un hash bcrypt a senso unico; quando un utente effettua il login, il server esegue l'hashing della password inviata nello stesso modo e verifica che i due hash coincidano. Bcrypt è costruito sul cifrario Blowfish ed è stato progettato da Niels Provos e David Mazières nel 1999, con una caratteristica deliberata che lo distingue dagli hash generici come SHA-256: è lento di proposito, e puoi renderlo più lento nel tempo con un fattore di costo regolabile man mano che l'hardware diventa più veloce.
Un hash bcrypt è un'unica stringa auto-descrittiva di 60 caratteri — ad esempio $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. Racchiude quattro parti: la versione ($2b$), il costo (12, un work factor logaritmico), un sale Base64 di 22 caratteri e il digest Base64 di 31 caratteri. Poiché il sale è casuale e incorporato nell'hash, la stessa password produce un hash diverso ogni volta, il che vanifica le rainbow table e nasconde il fatto che due utenti abbiano scelto la stessa password. La verifica rilegge il sale e il costo dall'hash memorizzato e ricalcola l'hash del candidato, quindi bcrypt non ha mai bisogno (e non è in grado) di invertire un hash per recuperare la password.
Questo strumento viene eseguito interamente nel tuo browser usando un'implementazione bcrypt integrata: nessuna password o hash viene mai caricata. Usalo per generare un hash con un costo e un prefisso a scelta, per verificare una password rispetto a un hash esistente e per leggere l'anatomia di un hash. Si abbina naturalmente ad altri strumenti di sicurezza: proteggi una directory con HTTP Basic Auth usando il nostro Generatore htpasswd (che può emettere voci bcrypt direttamente), crea una password robusta da sottoporre a hash con il nostro Generatore di password casuali, e ricorri al nostro Generatore SHA-256 quando hai bisogno di un checksum generico veloce anziché di un lento hash di password. Se stai decidendo con quale algoritmo memorizzare le password, confronta le opzioni in bcrypt vs Argon2 vs scrypt.
// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true
# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed) # True
# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true
# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq Caratteristiche principali
Genera hash Bcrypt
Produci un hash bcrypt standard di 60 caratteri da qualsiasi password con un nuovo sale casuale. Ogni clic genera un hash valido diverso, esattamente come farebbe un vero archivio di password.
Fattore di costo regolabile
Regola il work factor da 4 a 15 (12 è il valore predefinito moderno). Senti come ogni passo raddoppia all'incirca il tempo di calcolo, così puoi scegliere un costo robusto ma abbastanza veloce per il login.
Scegli il prefisso di versione
Emetti $2b$ (l'attuale standard di bcryptjs), $2y$ (PHP / Apache htpasswd) o $2a$ (l'originale). Sono tutti intercambiabili per la verifica tra le librerie.
Verifica una password rispetto a un hash
Incolla un hash memorizzato e una password candidata per confermare all'istante se corrispondono — ricalcolando l'hash con il sale e il costo incorporati, senza mai decifrare. Ideale per il debug di un login fallito.
Analisi dell'anatomia dell'hash
Vedi qualsiasi hash bcrypt scomposto in versione, costo, sale e digest, così la struttura della stringa $2b$12$... è ovvia a colpo d'occhio.
100% lato client
Tutto l'hashing e la verifica avvengono localmente nel tuo browser. Nessuna password o hash viene mai inviata a un server, così puoi lavorare con credenziali reali in modo privato.
Esempi del generatore Bcrypt
hash bcrypt (costo 12, $2b$)
password: correct horse battery staple costo: 12 prefisso: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Un hash bcrypt con costo 12 e prefisso $2b$. Il sale è casuale, quindi la stessa password produce un hash diverso ogni volta, eppure tutti vengono verificati correttamente rispetto alla password originale.
Verifica una password rispetto a un hash
password: correct horse battery staple hash: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Corrispondenza — la password è corretta per questo hash
La verifica non decifra l'hash. bcrypt esegue di nuovo l'hashing della password candidata usando il sale e il costo incorporati nell'hash memorizzato, poi confronta il risultato. Una corrispondenza significa che la password è corretta.
Analisi dell'anatomia di un hash
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
versione: $2b$ · costo: 12 · sale: dUSFKqT1FCMYZ6hcQfsxuO · digest: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq
Ogni hash bcrypt si auto-descrive: un'etichetta di versione, un costo a due cifre, un sale Base64 di 22 caratteri e un digest Base64 di 31 caratteri, tutto in un'unica stringa di 60 caratteri. Lo strumento li separa così puoi leggerli a colpo d'occhio.
Come usare il generatore Bcrypt
- 1
Inserisci una password e scegli il costo
Nella scheda Genera, digita una password o fai clic su Password casuale. Scegli un fattore di costo (4–15; 12 è il valore predefinito moderno) e un prefisso di versione — $2b$, $2a$ o $2y$ — per adattarlo al tuo stack.
- 2
Genera l'hash
L'hash bcrypt viene calcolato localmente con un nuovo sale casuale e appare come un'unica stringa di 60 caratteri $2b$12$.... Fai clic su Copia per prelevarlo, oppure rigenera per un nuovo hash con sale.
- 3
Leggi l'anatomia o verifica
Il pannello dell'anatomia scompone l'hash in versione, costo, sale e digest. Passa alla scheda Verifica per incollare un hash memorizzato e una password e confermare all'istante se corrispondono.
Common Errors
Provare a decifrare un hash
Bcrypt è a senso unico; non esiste alcuna decifratura. Per controllare una password, verificala rispetto all'hash invece di tentare di invertire il digest.
bcrypt.decrypt(hash) // no such operation
bcrypt.compare(password, hash) // returns true / false
Impostare il costo troppo basso
Un costo basso come 4 o 6 calcola l'hash quasi all'istante, il che permette anche agli attaccanti di forzare velocemente gli hash trafugati. Usa 12 come baseline.
cost: 4 // far too fast, weak against brute force
cost: 12 // modern default, resists brute force
Aspettarsi lo stesso hash due volte
Poiché il sale è casuale, eseguire di nuovo l'hashing della stessa password produce una stringa diversa. Confronta con la verifica, mai controllando l'uguaglianza byte per byte di due hash.
hash(pw) === storedHash // fails — different salts
bcrypt.compare(pw, storedHash) // correct check
Casi d'uso comuni
- Popolare un hash di password in un database
- Genera un hash bcrypt per un account amministratore o di prova e inseriscilo direttamente nella tua tabella utenti, così puoi accedere senza dover prima predisporre un intero flusso di registrazione.
- Eseguire il debug di un login che fallisce
- Verifica una password notoriamente corretta rispetto all'hash memorizzato per confermare se l'hash stesso è corretto, isolando il bug dal tuo codice di autenticazione.
- Scegliere il fattore di costo giusto
- Genera a diversi livelli di costo sul tuo hardware per sentire quanto tempo impiega ciascuno, poi scegli un work factor che resista al brute force senza rallentare i login reali.
- Creare voci htpasswd / Basic Auth
- Produci un hash bcrypt $2y$ per una credenziale Apache, Docker Registry o Caddy, poi inseriscilo in una riga utente:hash per l'HTTP Basic Auth.
- Costruire fixture di test
- Crea hash bcrypt deterministici a parità di password per popolare i test di integrazione di un flusso di login o di reimpostazione password senza avviare un vero server di autenticazione.
- Verificare un hash trovato
- Leggi l'anatomia di una stringa bcrypt in una configurazione o in un dump per controllarne il fattore di costo, e verificala rispetto alla password che ti aspetti per confermare una corrispondenza.
Dettagli tecnici
- Basato su Blowfish, costo adattivo
- Bcrypt ricava il suo hash dall'oneroso key setup del cifrario Blowfish, ripetuto 2^costo volte. Aumentare il costo di uno raddoppia il lavoro, mantenendo la funzione lenta contro il brute force man mano che l'hardware migliora.
- Sale casuale a 128 bit
- Ogni hash incorpora un sale casuale di 16 byte (128 bit), codificato in Base64 come 22 caratteri dopo il costo. Il sale rende ogni hash unico, così password identiche non condividono mai un digest e le rainbow table non si applicano.
- Formato auto-descrittivo di 60 caratteri
- L'output è $versione$costo$sale+digest — una stringa fissa di 60 caratteri che contiene tutto il necessario per verificarla. Non serve una colonna del sale separata né un archivio di parametri.
- Limite di 72 byte sulla password
- Bcrypt esegue l'hashing solo dei primi 72 byte di una password; qualsiasi cosa oltre viene ignorata in silenzio. Per passphrase molto lunghe, il pre-hashing (ad esempio con SHA-256) prima di bcrypt è una mitigazione comune.
- Verifica, non decifrare
- Bcrypt è a senso unico. La verifica riesegue l'hash sulla password candidata usando il sale e il costo estratti dall'hash memorizzato, poi confronta i digest a tempo costante. Non esiste alcuna operazione che recuperi il testo in chiaro.
- Note di trasparenza e avvertenze
- Gli hash vengono calcolati localmente e non vengono mai confrontati con un sistema reale. Gli hash copiati e qualsiasi password digitata risiedono nei tuoi appunti e nella memoria del browser: trattali come segreti e svuota gli appunti dopo averli incollati in produzione.
Buone pratiche
- Usa un costo 12 o superiore
- Il costo 12 è la baseline moderna; alzalo verso 14 per i sistemi sensibili finché la latenza del login resta accettabile. Rivaluta periodicamente: ciò che era abbastanza lento cinque anni fa oggi è economico da attaccare.
- Non memorizzare né registrare mai il testo in chiaro
- Memorizza solo l'hash bcrypt, mai la password originale, e tieni le password fuori dai log e dai messaggi di errore. L'intero valore di bcrypt si perde se il testo in chiaro trapela insieme ad esso.
- Lascia che sia bcrypt a gestire il sale
- Bcrypt genera e incorpora un sale casuale sicuro per te. Non fornire il tuo sale statico e non riutilizzarne uno: un sale casuale per ogni hash è ciò che vanifica le rainbow table.
- Attenzione al limite di 72 byte
- Se accetti passphrase lunghe, ricorda che bcrypt ignora i byte oltre 72. Considera il pre-hashing con SHA-256, oppure valuta Argon2id, quando input molto lunghi devono essere coperti per intero.
FAQ sul generatore Bcrypt
È sicuro usare un generatore bcrypt online?
Come si genera un hash bcrypt online?
$2b$ per la maggior parte degli stack moderni, $2y$ per PHP e Apache, oppure $2a$ per l'identificatore originale. L'hash bcrypt viene calcolato all'istante nel tuo browser con un nuovo sale casuale e appare come un'unica stringa di 60 caratteri $2b$12$... che puoi copiare con un clic. Nulla viene caricato: la password e l'hash non lasciano mai il tuo dispositivo. Genera di nuovo in qualsiasi momento per ottenere un altro hash valido per la stessa password, dato che ognuno porta con sé un sale casuale diverso. Un hash bcrypt può essere decifrato o invertito?
Quale fattore di costo (work factor) dovrei usare?
Qual è la differenza tra $2a$, $2b$ e $2y$?
$2a$ è l'identificatore originale ampiamente usato; $2b$ è la versione corretta e attuale che la libreria bcryptjs e la maggior parte delle implementazioni moderne producono; e $2y$ è l'identificatore usato da PHP e da htpasswd di Apache. Per la verifica sono intercambiabili: un hash che generi qui con qualsiasi prefisso verrà convalidato correttamente tra le librerie, perché tutte eseguono la stessa funzione di base. Scegli il prefisso che il tuo stack si aspetta se hai bisogno di compatibilità byte per byte. Come verifico una password rispetto a un hash bcrypt?
$2b$12$...) e la password candidata, e lo strumento ti dice all'istante se corrispondono. Funziona estraendo il sale e il costo incorporati nell'hash, ricalcolando l'hash della password candidata con quegli esatti parametri e confrontando il nuovo digest con quello memorizzato: non c'è alcuna decifratura coinvolta. È così che un sistema di login controlla una password: non recupera mai il testo in chiaro, conferma soltanto che ricalcolare l'hash della password inviata riproduce l'hash memorizzato. bcrypt vs Argon2 vs scrypt — quale dovrei usare?
Perché l'hash bcrypt è diverso ogni volta?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore JWT
Strumenti di sicurezza
Decodifica token JWT online con il nostro decodificatore JWT gratis. Ispeziona intestazione, payload, firma, scadenza e attestazioni. 100% browser — token mai fuori dal dispositivo. Nessuna registrazione, nessun tracciamento.
Codificatore e Generatore JWT
Strumenti di sicurezza
Generatore JWT online gratis. Costruisci header e payload, firma con HS256, RS256 o ES256 all'istante nel browser; segreto e chiave non lasciano il dispositivo.
Generatore Hash MD5 e Strumento Checksum File
Strumenti di sicurezza
Genera hash MD5, SHA-256, SHA-1 e SHA-512 online gratis. Calcola l'hash di testo o file nel browser, verifica checksum e copia i risultati. Senza registrazione.
Generatore di Password Casuali — Personalizzabile e Sicuro
Strumenti di sicurezza
Genera password casuali sicure all'istante — gratis, 100% nel tuo browser. Personalizza lunghezza e caratteri, batch fino a 50 con analisi entropia.
Generatore Hash SHA-1 (Legacy 160-bit)
Strumenti di sicurezza
Genera hash SHA-1 nel browser — output hex a 40 caratteri, senza upload. Strumento legacy per impronte Git, verifica di vecchi certificati e audit di migrazione. I dati non lasciano mai il tuo dispositivo.
Generatore Hash SHA-256 e Strumento Checksum
Strumenti di sicurezza
Genera hash SHA-256 online gratis. Calcola l'hash di testo o file nel browser, verifica checksum e copia l'output hex a 64 caratteri. Senza registrazione; i dati non lasciano mai la pagina.