Encriptar contraseñas con md5Si 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 contrasñ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ñaa 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ñaa 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.