Generatore Bcrypt

Generatore Bcrypt

Generatore di hash bcrypt gratuito — 100% lato client. Benchmark del fattore di costo in tempo reale, parser dell'hash e snippet per Node.js, Python, PHP, Go.

Aggiornato giugno 2026

Revisionato da Rafael Duarte

Nessuna attività di rete — 100% nel browser
SICURO LATO CLIENT
12
4 — solo test Il valore predefinito è 12 (minimo OWASP: 10). Più alto = più sicuro ma più lento. 18 — molto lento

Benchmark locale

Tempo di elaborazione sull'hardware corrente

Cost 8
—
Cost 10
—
Cost 12
—
Cost 14
—

Frammenti di implementazione

const bcrypt = require('bcryptjs');
const SALT_ROUNDS = 12; // OWASP minimum is 10; 12 is a common default

async function hashPassword(plaintext) {
  return await bcrypt.hash(plaintext, SALT_ROUNDS);
}

async function verifyPassword(plaintext, hash) {
  return await bcrypt.compare(plaintext, hash);
}

const hash = await hashPassword('user_password');
// '$2b$12$...' (60 chars, always different due to random salt)

const isValid = await verifyPassword('user_password', hash);
// true

Come usare il generatore bcrypt online

Hash e verifica delle password, tutto lato client

1. Inserisci la password

Scrivi la password da trasformare in hash: l'elaborazione avviene nel browser con la libreria bcryptjs, senza richieste di rete.

2. Scegli il fattore di costo

Il cursore va da 4 a 18 e parte da 12. Ogni punto in più raddoppia il tempo di calcolo, e quindi il lavoro di chi prova ad attaccare l'hash.

3. Genera e copia

L'hash compare con il tempo impiegato sul tuo dispositivo; copialo con l'icona accanto o con Shift+Invio.

4. Verifica un hash

Nella scheda di verifica incolla password e hash esistente: scopri subito se corrispondono.

Generatore e verificatore di hash bcrypt

Non solo l'hash: gli strumenti per scegliere il costo giusto

Verifica password–hash

Confronta una password con un hash $2a$, $2b$ o $2y$ e restituisce corrispondenza o mancata corrispondenza.

Benchmark sul tuo hardware

All'apertura misura quanto impiegano i costi 8, 10, 12 e 14 sul tuo dispositivo, con un'etichetta per ciascun livello.

Struttura dell'hash generato

Scompone l'hash appena creato in versione, costo (con il numero di iterazioni 2ⁿ), salt di 22 caratteri e checksum di 31.

Snippet in 8 linguaggi

Codice pronto per hash e verifica in Node.js, Python, PHP, Go, Java, Ruby, C# e Rust.

Script di benchmark per il server

Uno script in Node.js, Python, PHP, Ruby o Go misura i costi da 10 a 16 sulla macchina di produzione, con obiettivo 250 ms.

Nessuna password in rete

Hash e verifica girano in JavaScript nel browser: puoi controllarlo dalla scheda Rete degli strumenti per sviluppatori.

Esempi di hash bcrypt

Stessa password, hash sempre diverso

Input
Risultato (costo 12)
Gelato2026!
$2b$12$N3X6SbjeF7gLOIyiJ55OjefNV38uAoQCTgHMvgqUQ438/MXEDpprG
Gelato2026! (generato di nuovo)
$2b$12$bzhgXXWkH3OMXZKd.j8UIuzzxOxS3WVTMkYepqOKlzfpXfafhSdTu — salt diverso, entrambi validi
Verifica: gelato2026! contro il primo hash
Nessuna corrispondenza: basta una maiuscola diversa
72 volte a contro 100 volte a
Corrispondono: i byte oltre il 72° vengono ignorati

Quando ti serve un hash bcrypt

Gli scenari tipici per sviluppatori e sistemisti

Login di un'applicazione

Salva nel database solo l'hash bcrypt e al login usa compare() o password_verify(), che fanno il confronto al posto tuo.

Utente admin o dati di test

Genera l'hash da inserire a mano in un seed, in una migrazione o in un ambiente di sviluppo.

Tarare il fattore di costo

Esegui lo script di benchmark sul server di produzione e scegli il costo più alto che resta sotto la tua soglia di attesa al login.

Migrare da MD5 o SHA-1

Ricalcola le password con bcrypt al primo login riuscito di ogni utente, quando hai in mano la password in chiaro.

Debug di un'autenticazione

Controlla se una password e un hash salvati nel database corrispondono davvero, prima di cercare il bug nel codice.

Errori da evitare con bcrypt

Costo troppo basso in produzione

Con costi da 4 a 8 l'hash si calcola in pochi millisecondi e offre poca resistenza alla forza bruta. OWASP indica un minimo di 10; molti framework partono da 12.

Confrontare gli hash come stringhe

Rigenerare l'hash e confrontarlo con === non funziona: il salt cambia ogni volta. Usa sempre la funzione di verifica della libreria, come bcrypt.compare() o password_verify().

Dimenticare il limite di 72 byte

bcrypt considera solo i primi 72 byte e ignora il resto senza avvisare. In UTF-8 una lettera accentata come è occupa 2 byte e un'emoji 4: limita la lunghezza o valuta Argon2id.

Salvare il salt in una colonna separata

Non serve: il salt è già contenuto nei 60 caratteri dell'hash, subito dopo il costo.

Perché generare l'hash bcrypt qui

La password non lascia mai il dispositivo: bcryptjs è un'implementazione in puro JavaScript che gira nel browser, e la pagina non invia alcuna richiesta durante hash e verifica.

Il benchmark misura i tempi reali sul tuo hardware invece di dare una stima generica, e lo script per il server ti permette di ripetere la misura dove conta davvero: sulla macchina che autenticherà gli utenti.

bcrypt o Argon2id?

Entrambi sono adatti alle password, con priorità diverse

bcrypt
Argon2id
Posizione nelle linee guida OWASP
per sistemi esistenti, costo ≥ 10
prima scelta
Uso intensivo di memoria (resistenza a GPU)
no
sì
Lunghezza massima della password
72 byte
nessun limite pratico
Supporto nei linguaggi
ovunque, da anni
ampio e in crescita
Parametri regolabili
costo
memoria, iterazioni, parallelismo

Domande frequenti

OWASP indica un minimo di 10 e il valore più alto che il server può sostenere; 12 è un punto di partenza diffuso. Un riferimento pratico è restare intorno ai 250 ms per hash sul server di produzione: lancia lo script di benchmark lì, non solo nel browser.

Riferimenti

Strumenti correlati