Almacenar contraseñas de forma segura (o casi)

etiquetas: programación, php, seguridad, criptografía

Hace muy poco empecé a trabajar en un par de proyectos que utilizarán criptografía para garantizar la privacidad de los usuarios. De entre todo lo que esos proyectos van a implicar en cuanto a seguridad, hoy quiero hablar de las funciones hash y de su relación con las contraseñas.

1. Funciones hash

1.1. ¿Qué son?

También conocidas como «resúmenes criptográficos», funcionan tomando un conjunto variable de datos, y después de aplicar una serie de transformaciones sobre ellos, devuelven una cadena de longitud determinada, a la que podríamos llamar huella. Para que sean útiles en el campo de la criptografía, uno de sus requisitos es que debe ser computacionalmente imposible encontrar dos conjuntos de datos con el mismo hash: esto se llama resistencia a colisiones.

MD5("cadena uno") => ae9be994423206ae723bf717b6c32f96
MD5("cadena dos") => e2b8d5adcd7b0ace8a931972febd6909
El algoritmo MD5 es una de las muchas funciones hash que existen.

Se utilizan para comprobar la integridad de los datos transmitidos por cualquier medio, y también como parte fundamental en algoritmos HMAC.

Seguir leyendo...