Generatore di hash bcrypt

Genera hash

Maggiore = più lento e più sicuro. 12 è un buon valore predefinito.

Di tanto in tanto hai un hash bcrypt da un vecchio backup e una password in chiaro, e devi sapere se corrispondono. Oppure hai una password e vuoi l’hash che un dato fattore di costo produrrebbe. Questo strumento fa entrambe le cose: digita una password e genera un nuovo hash, incolla un hash e un candidato e ti dice se la verifica ha successo — utilizzando lo stesso confronto a tempo costante di un controllo di accesso in produzione.

Genera o verifica bcrypt

  1. 1

    Scegli una modalità

    Genera un nuovo hash da una password, o verifica una password contro un hash esistente `$2a$` / `$2b$` / `$2y$`.

  2. 2

    Per generare: inserisci in chiaro e costo

    Costo 4-14; 10-12 è normale. Viene creato un sale casuale di 16 byte per ogni hash.

  3. 3

    Per verificare: incolla hash e in chiaro

    Lo strumento estrae il sale e il costo dall'hash e ri-hasha il testo in chiaro con gli stessi parametri.

  4. 4

    Leggi il risultato

    La modalità di generazione copia l'hash di 60 caratteri; la modalità di verifica restituisce una corrispondenza verde o una discrepanza rossa.

Interni della modalità di verifica

Dato un hash memorizzato come:

$2b$12$mE2n5YqWjKqT9tXg.OQPoeeHZJ9hdSvOt5wFdRRQwl6yE1vWWY3z6

Il verificatore:

  1. Analizza la versione (2b), il costo (12), il sale (i primi 22 caratteri dopo il costo) e il digest (gli ultimi 31 caratteri).
  2. Ri-esegue bcrypt sul testo in chiaro candidato con il sale e il costo estratti.
  3. Confronta il digest risultante con l’originale utilizzando un confronto a tempo costante.

Un confronto riuscito restituisce true; qualsiasi differenza restituisce false.

Confronto a tempo costante

Confrontare due stringhe con un semplice == restituisce non appena un byte differisce — un canale laterale temporale che può rivelare l’hash cifra per cifra su un numero sufficiente di campioni. I controlli delle password in produzione (e questo strumento) utilizzano un confronto a tempo costante che esamina sempre ogni byte, quindi il tempo di decisione non dipende da quanti byte iniziali corrispondono.

Casi diagnostici comuni

Sintomo Causa probabile
La verifica fallisce, sei sicuro della password Spazi bianchi finali o BOM nell’input. Rimuovi entrambi.
La verifica fallisce, versione 2y Alcune librerie non gradiscono 2y; è valido e compatibile. Ri-hasha con 2b in avanti.
Hash troppo corto / malformato Non è un hash bcrypt. MD5 è 32 caratteri esadecimali, SHA-1 è 40, bcrypt è 60 con delimitatori $.
Avviso di mismatch del costo Il costo memorizzato è al di sotto del tuo minimo di policy. Ri-hasha al prossimo accesso riuscito.

Ri-hashing al login

Pratica migliore: quando un utente accede con successo, controlla se l’hash memorizzato ha un costo inferiore alla tua attuale policy. In tal caso, ri-hasha la password al nuovo costo e aggiorna il database. Nel giro di pochi mesi aggiorni l’intera base utenti senza chiedere a nessuno di cambiare la propria password.

Cosa non fa lo strumento

  • Verifica in massa — Progettato per un hash alla volta.
  • Crack o forza bruta — Attacchi di dizionario o rainbow-table sono intenzionalmente fuori portata.
  • Recupera il testo in chiaro — bcrypt è unidirezionale; se hai dimenticato la password, l’unico percorso è il reset.

Domande frequenti

No. L’hashing e la verifica avvengono nel tuo browser. Né il testo in chiaro né l’hash lasciano la pagina.

Il sale è generato casualmente per ogni hash. Questo è il punto — due utenti con la stessa password ottengono hash diversi, sconfiggendo le rainbow table.

Sì, è esattamente ciò che fa la modalità di verifica: incolla l’hash che hai, incolla una password candidata, lo strumento conferma o nega una corrispondenza.

Sì. Tutte le varianti moderne interoperano — il digest è compatibile tra le versioni; solo il tag differisce. Alcuni vecchi hash $2$ dei sistemi degli anni 2000 potrebbero necessitare di una libreria con supporto legacy esplicito.

Strumenti correlati