13 Como ENCRIPTAR EL PASSWORD del USUARIO en el Sistema de Ventas con (PHPyMySql) FullStack

Duraci贸n: 14 min
M贸dulo: 馃懁 CRUD de Usuarios y Roles (Seguridad L贸gica) Lecci贸n 5 de 17

Descripci贸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茅todoNivel de SeguridadCaracter铆sticas ClaveTimestamp
MD5Bajo (Vulnerable)Genera un hash de longitud fija. No recomendado ya que es f谩cil de desencriptar o romper [02:46].[01:30]
SHA-1Medio (Aceptable)Genera un hash m谩s largo que MD5 [03:21], pero sigue siendo vulnerable a ataques modernos.[03:07]
Password HashAlto (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:

PasoDescripci贸nTimestamp
Validaci贸n de CoincidenciaSe 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 ErrorSi 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 HashSi 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 INSERTFinalmente, 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.