Si en nuestra página web tenemos un sistema de usuarios y queremos proteger las contraseñas para prevenir posibles vulnerabilidades en nuestro servidor, es una medida eficaz encriptar las contraseñas, de manera que si alguien puede acceder a ellas no pueda ver la contraseña si no su encriptación.
Para mejorar este sistema, lo que haremos es usar un algoritmo de encriptación de un solo sentido, es decir que no se puede desencriptar de ninguna manera, como por ejemplo md5.
Para guardar la contraseña encriptada en md5, usaremos la funcion md5() de PHP:
<?
$contrasena = md5 ( $contrasena );
?>
Ya podemos guardar la contraseña en nuestra base de datos o fichero, pero… ¿como haremos para comprovar la contraseña en el inicio de sesión?
Muy fácil, como en la base de datos tenemos la contraseña en md5, encriptaremos la contraseña que escribe el visitante de la misma manera que hemos encriptado la contraseña del usuario en el momento de su regístro, ahora ya podremos comparar la contraseña enviada con la almacenada en el servidor, si la encriptación coincide es que la contraseña es correcta.
Pero si no usamos una transmisión segura (pe: SSL) sigue habiendo un problema, cuando el usuario envía los datos al servidor, la contraseña es enviada sin encriptar, y en ese momento puede ser capturada por un tercero. Para evitar esto, podemos encriptar la clave en el ordenador del cliente usando JavaScript gracias a Javascript MD5 , en lugar de encriptarla en el servidor usando PHP.
Publicar un comentario