Generatore Bcrypt

5 di 2 valutazioni
Generatore Bcrypt

Il Generatore Bcrypt è uno strumento gratuito che crea un hash bcrypt per archiviare in modo sicuro una password a partire da qualsiasi stringa inserita.

Che cos'è bcrypt ed è ancora sicuro?

Bcrypt è un algoritmo di hashing delle password tuttora considerato adeguato, purché sia configurato con un costo appropriato, anche se nei sistemi più recenti si preferisce spesso Argon2id. Niels Provos e David Mazières progettarono bcrypt nel 1999, basandosi sul processo di pianificazione delle chiavi del cifrario Blowfish per rendere intenzionalmente oneroso ogni tentativo di indovinare una password.

L'hashing è un processo unidirezionale. Per verificare una password, quindi, un'applicazione applica l'hashing alla password candidata usando i parametri memorizzati, anziché recuperare l'originale. A differenza di algoritmi generici come SHA-3, bcrypt produce un record codificato autonomo e di lunghezza fissa, che contiene versione, costo, salt e checksum.

Un record bcrypt standard è lungo 60 caratteri ASCII. Il checksum rappresenta 184 bit ed è composto da 31 caratteri nella codifica in stile Base64 specifica di bcrypt. Bcrypt non è considerato compromesso dal punto di vista crittografico, ma presenta un limite dovuto alla sua età: le implementazioni tradizionali elaborano al massimo 72 byte di input. Argon2id offre inoltre una protezione ad alta intensità di memoria che bcrypt non prevede.

Schema: il testo di input passa attraverso la funzione Bcrypt e produce un digest di lunghezza fissa che non può essere invertito

Come si usa il Generatore Bcrypt?

Inserisci la stringa da sottoporre ad hashing, avvia il generatore e copia il valore mostrato nel campo dei risultati Hash Bcrypt. Conserva il risultato completo, senza estrarre soltanto il checksum finale.

  1. Usa la password o la stringa di prova esatta, rispettando maiuscole, minuscole, spazi e punteggiatura.
  2. Genera il risultato bcrypt.
  3. Copia tutti i 60 caratteri, inclusi l'indicatore iniziale della versione e il costo.
  4. Salva il risultato nella colonna del database destinata agli hash delle password.
  5. Durante l'accesso, usa la funzione di verifica bcrypt della tua piattaforma anziché generare un hash e confrontare direttamente i due valori testuali.
Lo strumento Generatore Bcrypt su digily.link, con il suo modulo di inserimento

Di norma, bcrypt usa un nuovo salt casuale per ogni hash. Applicando due volte l'hashing allo stesso input si possono quindi ottenere due record diversi, entrambi validi per verificare quell'input. È il comportamento previsto e impedisce che password identiche abbiano gli stessi valori memorizzati.

L'elaborazione avviene sul server. L'input viene trasmesso al server tramite HTTPS e non viene memorizzato. Prima di inserire una vera password di produzione in un servizio online di terze parti, valuta se questa operazione è conforme alle politiche di sicurezza della tua organizzazione.

Si può decifrare o invertire un hash bcrypt?

No, un hash bcrypt non può essere decifrato, perché non è un dato cifrato e non contiene alcuna chiave di decifratura. In pratica, per attaccarlo bisogna provare possibili password e verificare ogni tentativo rispetto all'hash memorizzato.

Bcrypt rallenta questo processo grazie al costo configurabile. Tuttavia, non può rendere sicura una password breve, comune o già comparsa in una fuga di dati, e un attaccante determinato potrebbe comunque individuare input deboli. Il salt impedisce di riutilizzare un'unica tabella precalcolata contro molti account, ma non è segreto ed è incluso nel record memorizzato.

Esempio di risultato prodotto dallo strumento Generatore Bcrypt

Come leggere un risultato bcrypt

Un risultato bcrypt segue generalmente il formato modular crypt. Una struttura rappresentativa è $2y$12$[22-character salt][31-character checksum]. Si tratta soltanto di un esempio del formato, non dell'hash di una password specifica.

Parte Lunghezza tipica Funzione
Indicatore di versione 4 caratteri Identifica una variante di bcrypt, per esempio $2y$ o $2b$.
Costo 3 caratteri Registra il costo a due cifre seguito da un separatore.
Salt 22 caratteri Codifica un salt casuale a 128 bit.
Checksum 31 caratteri Codifica il checksum bcrypt a 184 bit.

Mantieni unite tutte queste parti. Modificare un carattere, troncare il valore o salvarlo in una colonna troppo corta normalmente fa fallire la verifica. L'indicatore di versione può variare tra librerie compatibili, quindi le applicazioni dovrebbero affidarsi ad API consolidate per le password anziché analizzare e ricostruire autonomamente il record.

Quando conviene usare bcrypt?

Bcrypt è indicato per l'hashing delle password nei sistemi che già lo supportano, soprattutto quando è importante mantenere la compatibilità con un database o un framework esistente. È intenzionalmente lento e usa un salt, quindi non è adatto come checksum generico per i file o come identificatore per la deduplicazione.

  • Usi adatti: password delle applicazioni, test di migrazione, verifica delle dimensioni dei campi del database e riproduzione di un ambiente di sviluppo compatibile con bcrypt.
  • Usa invece Argon2id per un nuovo sistema di password, se la piattaforma lo supporta e le relative impostazioni della memoria possono essere gestite correttamente.
  • Usa invece SHA-3 per verificare l'integrità dei file, creare impronte dei contenuti o eseguire la deduplicazione. Il Generatore SHA-3/384 e il Generatore SHA-3/512 producono digest generici, non record di password.
  • Non usare bcrypt per firme digitali, autenticazione dei messaggi, cifratura o archiviazione di dati che dovranno essere recuperati in seguito.

Spazi, punteggiatura e numeri vengono elaborati come dati di input e non ignorati. I caratteri accentati e quelli non latini vengono codificati in byte prima dell'elaborazione con bcrypt. Entrambi i sistemi devono quindi produrre gli stessi byte, usando anche una codifica dei caratteri e una normalizzazione Unicode coerenti. Il limite di 72 byte è particolarmente importante in questo caso, perché un carattere Unicode può occupare più di un byte. Dal punto di vista tecnico è possibile applicare l'hashing a un input vuoto, ma una password vuota non offre alcuna resistenza significativa ai tentativi di individuazione.

Domande frequenti

Quanto spazio serve nel database per un hash bcrypt?

Prevedi almeno 60 caratteri ASCII per un record bcrypt convenzionale. Un campo leggermente più ampio può agevolare future migrazioni ad altri algoritmi per password, mentre per il formato codificato standard non è necessaria una colonna binaria.

Posso migrare a bcrypt gli hash SHA esistenti?

Non puoi convertire un digest SHA esistente nell'hash bcrypt della password originale senza conoscere quella password. Un metodo di migrazione comune consiste nel verificare il vecchio hash al successivo accesso dell'utente, quindi applicare bcrypt o Argon2id alla password fornita e sostituire il vecchio record.

Prima di salvare un risultato, verifica di aver copiato l'intero valore di 60 caratteri, che il campo del database non lo tronchi e che l'applicazione di destinazione supporti l'indicatore di versione presente nel record.

Strumenti popolari