22 VERIFICAR contraseñas ENCRYPTADAS de los USUARIOS en el SISTEMA VETERINARIO(PHP y MySql)FullStack
Duración: 9 minDescripció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:
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]'
- 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]
- Verificación de Acceso: La validación final se realiza usando password_verify():
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]
Lecciones
Apoya este proyecto
Si te gusta nuestro contenido, ¡apóyanos con una donación!
Donar por Airtm Donar por Binance¡Gracias por tu apoyo! ❤️