1. ¿Qué es un hash? Un hash es el resultado de aplicar una función matemática a un dato (como una contraseña) para transformarlo en una cadena de caracteres irreconocible. Es un proceso unidireccional, lo que significa que no se puede revertir fácilmente para obtener el dato original. Se utiliza para proteger información sensible, especialmente contraseñas. 2. ¿Qué es un algoritmo de encriptación? Un algoritmo de encriptación es un método que convierte información legible en un formato cifrado para protegerla. A diferencia del hash, la encriptación sí puede revertirse mediante una clave, lo que permite recuperar el dato original. Se usa en comunicaciones seguras y almacenamiento de información confidencial. 3. ¿Cómo manejar contraseñas en PHP nativamente? En PHP, las contraseñas se manejan de forma segura utilizando funciones nativas como `password_hash()` para encriptarlas y `password_verify()` para validarlas. password_hash() convierte la contraseña en un hash seguro antes de guardarla en la base de datos. password_verify() compara una contraseña ingresada con el hash almacenado. Esto evita guardar contraseñas en texto plano y mejora la seguridad del sistema. 4. ¿Qué es un ataque de SQL Injection? El SQL Injection es un tipo de ataque en el que un atacante introduce código SQL malicioso en los campos de entrada (como formularios) para manipular la base de datos. Esto puede permitir acceder, modificar o eliminar información sin autorización. 5. Ejemplo de SQL Injection Un ejemplo clásico ocurre cuando no se validan los datos de entrada. Por ejemplo, si un login usa esta consulta: SELECT * FROM users WHERE email = '$email' AND password = '$password'; Un atacante podría ingresar en el campo email: ' OR '1'='1 Esto haría que la consulta siempre sea verdadera y permitiría acceder sin contraseña. Solución: Para evitar este tipo de ataques, se deben usar consultas preparadas (prepare) y validación de datos, como lo hiciste en tu código.