Cifrado de contraseñas en PHP
Almacenar la contraseña en texto plano es incorrecto. Un hacker malintencionado podría obtener acceso a tu base de datos y robar las contraseñas.
Por lo tanto, normalmente el inicio de sesión se almacena en texto plano,
y la contraseña se cifra con una función especial
md5, que toma la contraseña como parámetro
y devuelve su hash, a partir del cual
no se puede recuperar la contraseña original.
Por ejemplo, busquemos el hash de alguna cadena:
<?php
echo md5('12345'); // mostrará '827ccb0eea8a706c4c34a16891f84e7b'
?>
Ahora necesitamos modificar nuestro registro y nuestro inicio de sesión. Para empezar, recomendaría vaciar la tabla de usuarios, ya que actualmente ahí se almacenan contraseñas en texto plano, mientras que deberían almacenarse sus hashes. Luego, durante las pruebas de registro, la tabla se llenará con datos en el nuevo formato.
Ahora corrijamos nuestro registro para que al guardar un nuevo usuario en la base de datos, no se añada la contraseña, sino su hash.
La corrección descrita será algo como esto:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // convertimos la contraseña en su hash
$query = "INSERT INTO users SET login='$login', password='$password'";
?>
Apliquemos correcciones similares en el inicio de sesión:
<?php
$login = $_POST['login'];
$password = md5($_POST['password']); // convertimos la contraseña en su hash
$query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
?>
Realice los cambios en el registro teniendo en cuenta el cifrado, registre un par de usuarios nuevos, y asegúrese de que se añadieron a la base de datos con las contraseñas cifradas.
Realice los cambios en el inicio de sesión teniendo en cuenta el cifrado, intente iniciar sesión con los usuarios registrados anteriormente.