Verifica bcrypt | Controlla gratis se una password corrisponde all'hash
Verifica all'istante e gratuitamente se la password inserita corrisponde a un hash bcrypt. Funziona con lo stesso meccanismo di password_verify() di PHP, quindi si presta al collaudo e al debug delle procedure di accesso, e supporta sia il formato $2a$ sia $2b$.
| Hash | |
|---|---|
| Testo |
Corrisponde
Non corrisponde
Consigli
- bcrypt incorpora il sale al proprio interno: anche se l'hash è diverso a ogni generazione, se deriva dallo stesso testo la verifica dà esito positivo.
- La verifica usa lo stesso meccanismo di
password_verify($password, $hash)di PHP. - Quando confrontate un hash letto dal database con la password inserita, non usate il normale confronto fra stringhe (
==) ma la funzione di verifica dedicata, per prevenire gli attacchi temporali. - Anche gli hash che iniziano con
$2a$sono verificabili come bcrypt.
Domande frequenti
$2b$ corregge un difetto delle implementazioni precedenti ed è oggi la variante consigliata.
A proposito — che cosa succede in quel mezzo secondo dopo il login
Dal momento in cui premete «Accedi» a quello in cui compare la risposta passa qualche decimo di secondo. Parte di quel tempo è occupata da bcrypt che calcola l'hash della password: la lentezza è voluta, ed è una misura di sicurezza.
L'attacco temporale è un attacco a canale laterale che deduce informazioni segrete misurando differenze minime nei tempi di elaborazione. Con un normale confronto fra stringhe (==) il tempo varia leggermente a seconda di quanti caratteri iniziali coincidono. La funzione di verifica di bcrypt è invece progettata per impiegare un tempo costante ed è quindi immune a questo attacco.
Nelle applicazioni web reali si raccomanda di rispondere impiegando lo stesso tempo anche quando l'utente non esiste, come se esistesse ma con password errata. Poter distinguere «utente inesistente» da «password errata» darebbe infatti a un attaccante un indizio prezioso per individuare i nomi utente validi.