22 VERIFICAR contraseñas ENCRYPTADAS de los USUARIOS en el SISTEMA VETERINARIO(PHP y MySql)FullStack

Duración: 9 min
Módulo: 🔐 Autenticación, Sesiones y Base de Datos (Back-End Core) Lección 8 de 11

Descripción

🎬 Lección 22: Verificar Contraseñas Encriptadas (PHP y MySql) 🛡️

El objetivo de esta lección es utilizar la función password_verify() de PHP para comparar la contraseña ingresada por el usuario con el hash almacenado en la base de datos.

1. El Desafío de la Verificación 🔑

Dado que el método password_hash() genera un hash diferente cada vez, incluso para la misma contraseña, es imposible comparar el texto plano con el hash utilizando la consulta SQL tradicional.

2. La Solución: password_verify() 🔎

PHP proporciona la función password_verify($password_usuario, $hash_almacenado) para manejar esta comparación de forma segura:

  • Esta función recibe la contraseña en texto plano ingresada por el usuario (sin encriptar) y el hash completo que está guardado en la base de datos. [01:37]
  • Internamente, password_verify() extrae la sal del hash almacenado, aplica la misma encriptación a la contraseña de texto plano y compara si el resultado coincide.
  • Si coinciden, devuelve true (contraseña correcta). [02:43]

3. Lógica Final del Controlador ⚙️

El código en el archivo login_controller.php se modifica para adaptarse al uso de la encriptación:

  1. Consulta SQL Modificada: La consulta ya no intenta comparar la contraseña. Ahora solo se busca al usuario utilizando el correo electrónico (el email). [06:22]

    SQL

    SELECT * FROM tb_usuarios WHERE email = '[variable_email]'

  2. Recuperación del Hash: Si el contador indica que se encontró un usuario, se recupera el hash completo almacenado en el campo password de la base de datos y se guarda en una variable ($password_tabla). [06:31]
  3. Verificación de Acceso: La validación final se realiza usando password_verify():
    • Se compara el password ingresado ($password) con el hash recuperado ($password_tabla). [07:17]
    • Si el resultado es true, se muestra "Bienvenido al sistema" 🎉. [07:39]
    • Si es false (o el usuario no fue encontrado), se muestra "Error en los datos" 🛑. [07:57]

Próximo Paso: Una vez validado el login de forma segura, el siguiente video tratará sobre el redireccionamiento del usuario a un panel de control o dashboard de administrador. [08:17]