21 Maneras de ENCRYPTAR contraseñas de los USUARIOS en el SISTEMA VETERINARIO (PHP y MySql)FullStack

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

Descripción

🎬 Lección 21: Maneras de Encriptar Contraseñas de Usuarios 🔐

El objetivo principal es demostrar y seleccionar el método de encriptación más seguro y moderno disponible en PHP.

1. Métodos de Encriptación Probados

El instructor realiza pruebas en un archivo temporal (pruebas.php) con la contraseña de ejemplo "12345678" para comparar diferentes algoritmos de hashing:

MétodoDescripciónDesventaja
MD5Uno de los primeros métodos de hashing. Genera un hash corto y fijo. [02:23]Es vulnerable y fácil de "desencriptar" (conocer el texto original) usando tablas de rainbow.
SHA1Un método más largo y, por lo tanto, ligeramente más seguro que MD5. [03:43]Al igual que MD5, genera el mismo hash para la misma entrada de texto, lo que facilita los ataques.
password_hash()La función recomendada por PHP. Utiliza un algoritmo fuerte (como Bcrypt por defecto) y genera un hash largo. [04:48]Fortaleza: El hash nunca es el mismo, incluso si se encripta el mismo texto varias veces. [07:07] Esto se logra mediante el uso de una sal (salt) aleatoria integrada en el hash.

2. Conclusión y Aplicación

  • Método Recomendado: La función password_hash() es seleccionada como el estándar de seguridad. Su característica de generar un hash diferente en cada ejecución (cambia el algoritmo de encriptación), incluso para la misma contraseña, la hace resistente a ataques de tablas precalculadas. [07:33]
  • Actualización de la Base de Datos: Se copia un hash generado por password_hash() y se utiliza para reemplazar la contraseña en texto plano del usuario de prueba en la tabla tb_usuarios. [08:56]
  • Resultado Inmediato: Tras la actualización, el intento de login con la contraseña original (12345678) falla, lo que demuestra que el sistema ya no valida las contraseñas sin encriptar. [09:08]

Próximo Paso

El siguiente video se enfocará en cómo desencriptar o verificar la contraseña introducida por el usuario contra el hash almacenado en la base de datos, lo cual se realiza mediante la función password_verify(). [09:18]