2011-09-22 27 views

Respuesta

11

Es un campo varchar normal (40 caracteres) pero si desea configurarlo de forma más segura debe usar sal.

http://highedwebtech.com/2008/04/25/season-your-passwords-with-some-salt/

Actualización:

ADVERTENCIA: hash de la contraseña sin sal es muy débil! ¡Nunca deberías usarlo!

contraseña de salado es el buen camino para hacerlo: password salting

como asesorado por el PST:

  • usando SHA-1 y la sal es el enfoque más ingenua, pero bastante bien seguro.

  • usando bcrypt:

es el método más seguro :), ya que utilizan la velocidad con el fin de hacerlo más seguro, bfish es una función hash construido alrededor del pez globo método de cifrado. (Parece que Twofish existe también y debería ser la versión "moderna" de pez globo).

Es una versión usando una cadena de SHA-1 lo que es una solución intermedia, pero que permite ajustar la velocidad a sus necesidades. De hecho, la velocidad debilita su seguridad.

+2

También debe utilizar una función diferente ("más costosa desde el punto de vista computacional") como 'bcrypt' y/o utilizar un HMAC-hash. –

+2

Sí, definitivamente sal a tus hashes. Además, si usa una sal diferente para cada usuario, ayuda a evitar los ataques de la tabla Rainbow: http://en.wikipedia.org/wiki/Rainbow_table – Mac

+0

@pst: ¿podría dar más detalles? :) – ykatchou

0

La mayoría de las personas guardan el hash como lo ha sugerido. Es lo suficientemente seguro y simple, por lo que es una buena opción.

Tenga en cuenta que todos los hashes se pueden agrietar con el tiempo, por lo que cualquier hash es mejor que ninguno y SHA es lo suficientemente fuerte.

+2

Esto es peor que eso: sin una sal, un ataque trivial de tabla arcoíris lo romperá fácilmente. Además, un solo SHA es menos que ideal para las contraseñas porque * se puede calcular de manera extremadamente rápida *. ('bcrypt' y HMAC pueden ayudar a resolver eso.) –

+0

¿es hmac útil para datos menores de un bloque? – ykatchou

+0

@ykatchou Vaya, el comentario es ligeramente incorrecto. [HMAC-SHA1] (http://en.wikipedia.org/wiki/HMAC) no está diseñado para "ayudar" con la velocidad, pero lo que puede hacer es agregar otro nivel de fortalecimiento con una clave secreta de servidor. –

2

También podría usar la función AES_ENCRYPT() incorporada en mysql para mayor seguridad. Link here

También hay una buena de cómo hacerlo aquí la explicación más: link

2

The manual contiene una buena explicación de qué tipo de columna de usar.

Cuestiones relacionadas