Funzione PHP password_verify

Funzione PHP password_verify
La funzione password_verify () viene utilizzata per abbinare la password hash con la password originale. Un'altra funzione, password_hash () viene utilizzata per generare il valore di hash in base all'algoritmo di hashing, al costo e al valore salato. La funzione password_verify () contiene tutte le informazioni di hashing per verificare l'hash con la password. Gli usi di questa funzione sono stati mostrati in questo tutorial usando più esempi.

Sintassi

Questa funzione ha due argomenti e restituisce vero su successo e falso al fallimento. La sintassi di questa funzione ha dato di seguito.

password_verify (stringa $ password, stringa $ hash): bool

Il primo argomento contiene la password che verrà controllata. Il secondo argomento contiene il valore di hash utilizzato per verificare che la password sia valida o meno. Questo valore hash viene generato utilizzando la funzione password_hash ().

Diversi tipi di algoritmi possono essere utilizzati per generare il valore hash di qualsiasi password. Il secondo argomento della funzione password_hash () contiene un valore costante che indica un algoritmo di hashing. Le costanti che possono essere utilizzate dalla funzione password_hash () hanno menzionato di seguito.

Nome costante Descrizione
Password_default Utilizza l'algoritmo predefinito per generare il valore hash della password.
Password_bcrypt Utilizza l'algoritmo Crypt_Blowfish per generare il valore hash della password.
Password_argon2i Utilizza l'algoritmo Argon2i per generare il valore hash della password.
Password_argon2id Utilizza l'algoritmo Argon2ID per generare il valore hash della password.

Usi della funzione password_verify ()

I modi per verificare la password in base al valore di hash generato da diversi algoritmi di hashing hanno mostrato in questa parte del tutorial.

Esempio-1: verifica la password con l'hash generato da password_default

Crea un file PHP con il seguente script che visualizzerà un modulo per l'utente per fornire la password che verrà controllata dalla funzione password_verify () per la convalida quando verrà premuto il pulsante di invio.

Il valore costante, Password_default è stato utilizzato nella funzione password_hash () per generare il valore hash della particolare password. Successivamente, la funzione password_verify () ha utilizzato per verificare il valore della password fornito dall'utente è valido o non valido.



Verifica della password













// genera il valore hash della password
$ hash = password_hash ('secretpass456', password_default);
// Controllare il valore della password è inviato dall'utente o no
if (isset ($ _ post ['pass'])

// Leggi la password inviata dall'utente
$ password = $ _post ['pass'];
// Controllare che la password è valida o non valida
if (password_verify ($ password, $ hash))
La password echo 'è valida!';
altro
La password echo 'non è valida.';


?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script sopra se la password valida è fornita dall'utente.

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra se la password non valida viene fornita dall'utente.

Esempio 2: verifica la password con l'hash generato da password_bcrypt

Crea un file PHP con il seguente script che visualizzerà un modulo per l'utente per fornire la password che verrà controllata dalla funzione password_verify () per la convalida quando il pulsante di invio verrà premuto come l'esempio precedente.

Il valore costante, Password_bcrypt, e il valore di costo è stato utilizzato nella funzione password_hash () per generare il valore hash della particolare password. Successivamente, la funzione password_verify () ha utilizzato per verificare il valore della password fornito dall'utente è valido o non valido.



Verifica della password













// Imposta il valore della password
$ password = "SecretPass";
// Imposta il valore di costo
$ options = ["cost" => 15];
// genera il valore hash della password e il valore dei costi
$ hash = password_hash ($ password, password_bcrypt, $ options);
// Controllare il valore della password è inviato dall'utente o no
if (isset ($ _ post ['pass'])

// Leggi la password inviata dall'utente
$ password = $ _post ['pass'];
// Controllare che la password è valida o non valida
if (password_verify ($ password, $ hash))
La password echo 'è valida.';
altro
La password echo 'non è valida.';


?>

Produzione:

Verrà visualizzato il seguente output dopo l'esecuzione dello script sopra se la password valida è fornita dall'utente.

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra se la password non valida viene fornita dall'utente.

Esempio-3: verifica la password con l'hash generato da password_argon2i

Crea un file PHP con il seguente script che visualizzerà un modulo per l'utente per fornire la password che verrà controllata dalla funzione password_verify () per la convalida quando il pulsante di invio verrà premuto come l'esempio precedente.

Il valore costante, Password_argon2i, e il valore di costo è stato utilizzato nella funzione password_hash () per generare il valore hash della particolare password. Il valore hash della password verrà stampato nell'output. Successivamente, la funzione password_verify () ha utilizzato per verificare il valore della password fornito dall'utente è valido o non valido.

// Imposta il valore della password
$ password = "SecretPass";
// genera il valore hash della password
$ hash = password_hash ($ password, password_argon2i, ["cost" => 15]);
Echo "Il valore hash:
$ hash ";
?>


Verifica della password













// Controllare il valore della password è inviato dall'utente o no
if (isset ($ _ post ['pass'])

// Leggi la password inviata dall'utente
$ password = $ _post ['pass'];
// Controllare che la password è valida o non valida
if (password_verify ($ password, $ hash))
La password echo 'è valida.';
altro
La password echo 'non è valida.';


?>

Produzione:

Verrà visualizzato il seguente output dopo aver eseguito lo script sopra.

Verrà visualizzato il seguente output dopo l'esecuzione dello script sopra se la password valida è fornita dall'utente.

Conclusione

La verifica della password è necessaria per autenticare l'utente ed è un compito essenziale di qualsiasi sito Web. Gli usi della funzione password_verify () per verificare le password in base ai diversi valori di hash hanno mostrato in questo tutorial utilizzando il modulo HTML.