§

Generatore Bcrypt

§

Genera hash bcrypt

10 (1,024 rounds)

Bcrypt è lo schema di hashing delle password di riferimento nello sviluppo web sin dal suo debutto nel 1999 da parte di Provos e Mazières. NIST SP 800-63B raccomanda l'hashing ad uso intensivo di memoria per l'archiviazione delle password e OWASP elenca bcrypt come opzione preferita insieme ad Argon2id. Rails include bcrypt tramite has_secure_password, Django lo supporta come backend sostituibile e gli sviluppatori Node.js utilizzano bcryptjs. Il fattore di costo controlla quanto tempo impiega un singolo hash — raddoppiare il costo raddoppia il lavoro. La maggior parte delle applicazioni utilizza il costo 10 (1.024 round) come base, mentre i sistemi finanziari o amministrativi arrivano spesso a 12 (4.096 round). Questo strumento funziona interamente nel browser usando JavaScript, quindi le tue password non lasciano mai la tua macchina.

Cos'è bcrypt?

Bcrypt è una funzione di hashing delle password progettata da Niels Provos e David Mazières, basata sul cifrario Blowfish. A differenza di digest rapidi come MD5 o SHA-256, bcrypt è volutamente lento e computazionalmente costoso — questo rende gli attacchi di forza bruta contro hash di password rubati poco pratici. Bcrypt genera automaticamente un sale casuale per ogni password, quindi password identiche producono hash diversi.

Come funziona bcrypt?

L'algoritmo bcrypt viene eseguito interamente nel tuo browser. Ecco cosa succede passo dopo passo:

  1. La tua password viene codificata come byte UTF-8 e inserita nel programma di chiavi bcrypt, che inizializza l'array P di 4.184 byte e le S-box del cifrario Blowfish usando la password e il sale.
  2. Viene generato un sale casuale di 128 bit. Il sale viene mescolato nel programma di chiavi in modo che ogni sale unico produca un hash completamente diverso anche per la stessa password.
  3. Il programma di chiavi viene eseguito per 2^costo round (es., 2^10 = 1.024 iterazioni al costo 10). Ogni iterazione ricifra il sale e le voci dell'array P, rendendo il calcolo più lento all'aumentare del costo.
  4. L'output finale è una stringa di 60 caratteri nel formato $2b$<cost>$<salt><hash>, dove cost è riempito con zero a sinistra (es., 10), salt sono 22 caratteri Base64 e hash sono 31 caratteri Base64.
  5. Per la verifica, lo stesso algoritmo viene eseguito di nuovo con la password candidata e il sale estratto dall'hash memorizzato. Se l'hash derivato corrisponde a quello memorizzato, la password è corretta.

Quale fattore di costo dovrei usare?

Il fattore di costo è il logaritmo del numero di iterazioni — costo 10 significa 2^10 = 1.024 round, costo 12 significa 4.096 round. Scegli in base alle tue esigenze di sicurezza e hardware:

  • Costo 4-6 (16-64 round) — solo per sviluppo e test. Troppo veloce per la produzione; fornisce protezione minima.
  • Costo 8 (256 round) — minimo indispensabile per applicazioni non critiche. Circa 6 ms su hardware moderno.
  • Costo 10 (1.024 round) — linea di base attuale raccomandata. Richiede circa 25 ms. Buono per la maggior parte delle applicazioni web.
  • Costo 12 (4.096 round) — raccomandato per portali di amministrazione, sistemi finanziari e applicazioni ad alta sicurezza. Richiede circa 100 ms.
  • Costo 14 (16.384 round) — alta sicurezza. Richiede circa 400 ms. Usalo per password master, chiavi di crittografia o quando la latenza di login è accettabile.

Perché usare questo generatore bcrypt?

  • La tua privacy è protetta — ogni password viene hasheata localmente nel tuo browser e nessun dato lascia mai il tuo dispositivo.
  • Hai entrambe le modalità affiancate: generare nuovi hash o verificarne di esistenti senza cambiare pagina.
  • Il fattore di costo è regolabile da 4 (veloce) a 15 (molto lento), così puoi adattarlo alle esigenze di sicurezza della tua applicazione.
  • Gli hash utilizzano il formato standard $2b$ compatibile con tutti i principali linguaggi e framework.

Quali sono le applicazioni comuni di bcrypt?

Bcrypt è ampiamente utilizzato per l'archiviazione e la verifica delle password nell'industria:

  • Autenticazione di applicazioni web — memorizzare gli hash delle password degli utenti nei database in modo che le password in chiaro non vengano mai salvate.
  • Hashing di chiavi API — hasheare i segreti API prima di memorizzarli, in modo che una violazione del database non divulghi credenziali valide.
  • Audit di migrazione — verificare che gli hash di password legacy di un sistema precedente autentichino ancora gli utenti dopo l'aggiornamento del livello di autenticazione.

Com'è fatto un hash bcrypt?

Hasheare la password hunter2 con fattore di costo 10 produce una stringa come $2b$10$N9qo8uLOickgx2ZMRZoMyeIjZAgcfl7p92ldGxad68LJZdL17lhWy. Il formato si suddivide in: $2b$ (versione dell'algoritmo), 10 (fattore di costo), $, poi 22 caratteri di sale e 31 caratteri di hash, tutti codificati in Base64. Ogni esecuzione con la stessa password produce un hash diverso a causa del sale casuale.

Questo generatore bcrypt viene eseguito interamente nel tuo browser utilizzando un'implementazione in JavaScript puro. Hashea le password prima di memorizzarle, verifica hash esistenti e regola il fattore di costo in base ai tuoi requisiti di sicurezza — tutto senza inviare un singolo byte a un server.