Función PHP Password_verify

Función PHP Password_verify
La función contraseña_verify () se utiliza para que coincida con la contraseña hash con la contraseña original. Otra función, contraseña_hash () se utiliza para generar el valor hash basado en el algoritmo de hashing, el costo y el valor de la sal. La función contraseña_verify () contiene toda la información de hash para verificar el hash con la contraseña. Los usos de esta función se han mostrado en este tutorial mediante el uso de múltiples ejemplos.

Sintaxis

Esta función tiene dos argumentos y devuelve verdadero al éxito y falso en el fracaso. La sintaxis de esta función ha dado a continuación.

contraseña_verify (cadena $ contraseña, cadena $ hash): bool

El primer argumento contiene la contraseña que se verificará. El segundo argumento contiene el valor hash que se utiliza para verificar que la contraseña sea válida o no. Este valor hash se genera utilizando la función contraseña_hash ().

Se pueden usar diferentes tipos de algoritmos para generar el valor hash de cualquier contraseña. El segundo argumento de la función contraseña_hash () contiene un valor constante que indica un algoritmo de hash. Las constantes que pueden utilizar la función contraseña_hash () ha mencionado a continuación.

Nombre constante Descripción
Contraseña_default Utiliza el algoritmo predeterminado para generar el valor hash de la contraseña.
Contraseña_bcrypt Utiliza el algoritmo crypto_blowfish para generar el valor hash de la contraseña.
Contraseña_argon2i Utiliza el algoritmo Argon2i para generar el valor hash de la contraseña.
Contraseña_argon2id Utiliza el algoritmo Argon2id para generar el valor hash de la contraseña.

Usos de la función contraseña_verify ()

Las formas de verificar la contraseña en función del valor hash generado por diferentes algoritmos de hashing han demostrado en esta parte del tutorial.

Ejemplo-1: Verifique la contraseña con el hash generado por contraseña_default

Cree un archivo PHP con el siguiente script que mostrará un formulario para que el usuario proporcione la contraseña que se verificará con la función Password_verify () para la validación cuando se presione el botón Enviar.

El valor constante, Contraseña_default se ha utilizado en la función contraseña_hash () para generar el valor hash de la contraseña particular. A continuación, la función contraseña_verify () ha utilizado para verificar el valor de contraseña dado por el usuario es válido o no válido.



Verificación de contraseña













// Generar el valor hash de la contraseña
$ hash = contraseña_hash ('SecretPass456', contraseña_default);
// verificar el valor de la contraseña es enviado por el usuario o no
if (isset ($ _ post ['pass']))

// Lea la contraseña enviada por el usuario
$ contraseña = $ _post ['pass'];
// verificar que la contraseña sea válida o inválida
if (contraseña_verify ($ contraseña, $ hash))
La contraseña de echo es válida!';
demás
La contraseña de eco no es válida.';


?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior si la contraseña válida está dada por el usuario.

La siguiente salida aparecerá después de ejecutar el script anterior si la contraseña no válida está dada por el usuario.

Ejemplo-2: Verifique la contraseña con el hash generado por contraseña_bcrypt

Cree un archivo PHP con el siguiente script que mostrará un formulario para que el usuario proporcione la contraseña que será verificada por la función Password_verify () para la validación cuando el botón Enviar se presionará como el ejemplo anterior.

El valor constante, Contraseña_bcrypt, y el valor de costo se ha utilizado en la función contraseña_hash () para generar el valor hash de la contraseña particular. A continuación, la función contraseña_verify () ha utilizado para verificar el valor de contraseña dado por el usuario es válido o no válido.



Verificación de contraseña













// Establecer el valor de la contraseña
$ contraseña = "SecretPass";
// Establecer el valor de costo
$ options = ["costo" => 15];
// Generar el valor hash de la contraseña y el valor de costo
$ hash = contraseña_hash ($ contraseña, contraseña_bcrypt, $ opciones);
// verificar el valor de la contraseña es enviado por el usuario o no
if (isset ($ _ post ['pass']))

// Lea la contraseña enviada por el usuario
$ contraseña = $ _post ['pass'];
// verificar que la contraseña sea válida o inválida
if (contraseña_verify ($ contraseña, $ hash))
La contraseña de echo es válida.';
demás
La contraseña de eco no es válida.';


?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior si la contraseña válida está dada por el usuario.

La siguiente salida aparecerá después de ejecutar el script anterior si la contraseña no válida está dada por el usuario.

Ejemplo-3: Verifique la contraseña con el hash generado por contraseña_argon2i

Cree un archivo PHP con el siguiente script que mostrará un formulario para que el usuario proporcione la contraseña que será verificada por la función Password_verify () para la validación cuando el botón Enviar se presionará como el ejemplo anterior.

El valor constante, Contraseña_argon2i, y el valor de costo se ha utilizado en la función contraseña_hash () para generar el valor hash de la contraseña particular. El valor hash de la contraseña se imprimirá en la salida. A continuación, la función contraseña_verify () ha utilizado para verificar el valor de contraseña dado por el usuario es válido o no válido.

// Establecer el valor de la contraseña
$ contraseña = "SecretPass";
// Generar el valor hash de la contraseña
$ hash = contraseña_hash ($ contraseña, contraseña_argon2i, ["costo" => 15]);
Echo "El valor hash:
$ hash ";
?>


Verificación de contraseña













// verificar el valor de la contraseña es enviado por el usuario o no
if (isset ($ _ post ['pass']))

// Lea la contraseña enviada por el usuario
$ contraseña = $ _post ['pass'];
// verificar que la contraseña sea válida o inválida
if (contraseña_verify ($ contraseña, $ hash))
La contraseña de echo es válida.';
demás
La contraseña de eco no es válida.';


?>

Producción:

La siguiente salida aparecerá después de ejecutar el script anterior.

La siguiente salida aparecerá después de ejecutar el script anterior si la contraseña válida está dada por el usuario.

Conclusión

Se requiere la verificación de contraseña para autenticar al usuario y es una tarea esencial de cualquier sitio web. La función de uso de la función Password_verify () para verificar las contraseñas basadas en diferentes valores de hash se ha mostrado en este tutorial utilizando el formulario HTML.