13 Como ENCRIPTAR EL PASSWORD del USUARIO en el Sistema de Ventas con (PHPyMySql) FullStack
Duraci贸n: 14 minDescripci贸n
馃攼 Lecci贸n 13: C贸mo Encriptar el Password del Usuario
Esta lecci贸n es fundamental para la seguridad del sistema, ya que se encarga de implementar m茅todos de encriptaci贸n para las contrase帽as, garantizando que no se guarden en texto plano en la base de datos. Se compara la seguridad de diferentes algoritmos para elegir el m谩s robusto.
1. 馃敀 M茅todos de Encriptaci贸n de Contrase帽as
Se exploran y comparan tres m茅todos de encriptaci贸n disponibles en PHP:
| M茅todo | Nivel de Seguridad | Caracter铆sticas Clave | Timestamp |
|---|---|---|---|
| MD5 | Bajo (Vulnerable) | Genera un hash de longitud fija. No recomendado ya que es f谩cil de desencriptar o romper [02:46]. | [01:30] |
| SHA-1 | Medio (Aceptable) | Genera un hash m谩s largo que MD5 [03:21], pero sigue siendo vulnerable a ataques modernos. | [03:07] |
| Password Hash | Alto (Recomendado) | Utiliza un algoritmo m谩s fuerte (generalmente Bcrypt por defecto) [04:15]. Genera un hash diferente en cada ejecuci贸n (cambia din谩micamente) a pesar de que el texto de entrada sea el mismo, lo que lo hace resistente a las tablas rainbow y m谩s seguro [07:34]. | [03:51] |
El m茅todo elegido para el proyecto por su robustez y seguridad es password_hash().
2. 馃捇 L贸gica de Validaci贸n e Inserci贸n
Se modifica el controlador (controllers/usuarios/create.php) para a帽adir la l贸gica de seguridad y validaci贸n antes de la inserci贸n:
| Paso | Descripci贸n | Timestamp |
|---|---|---|
| Validaci贸n de Coincidencia | Se a帽ade una estructura condicional (if/else) para verificar si la contrase帽a principal (password_user) es igual a la contrase帽a de repetici贸n (password_repeat) [08:47]. | [08:47] |
| Mensaje de Error | Si las contrase帽as no son iguales, el sistema debe mostrar un mensaje de error sin intentar la inserci贸n ("Error, las contrase帽as no son iguales") [09:25]. | [09:25] |
| Aplicaci贸n del Hash | Si las contrase帽as son iguales, la variable $password_user se sobrescribe con su valor encriptado utilizando password_hash() [10:19]. | [10:19] |
| Ejecuci贸n del INSERT | Finalmente, el valor encriptado (el hash) es el que se inserta en el campo password de la tabla de usuarios [10:35]. | [10:35] |
Problema Detectado: Al finalizar la lecci贸n, se identifica que los usuarios registrados con la nueva encriptaci贸n no pueden iniciar sesi贸n [13:17], ya que el controlador de login a煤n no sabe c贸mo verificar una contrase帽a encriptada con password_hash(). Este ser谩 el tema a solucionar en el pr贸ximo video.
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! 鉂わ笍