2011-12-12 15 views

Respuesta

13

La forma más sencilla es utilizar la palabra clave binary en su utilización consulta:

SELECT /*fields*/ FROM table WHERE /* where clause */ BINARY password = "userpassword" 

O

utilice el strcmp en su código PHP:

Se puede usar esta también si almacena hash o contraseña cifrada que recomiendo.

5

Supongo que está almacenando contraseñas en claro. Eso no solo es bastante inseguro, sino que también es innecesario en la mayoría de las situaciones. Mi consejo es almacenar las contraseñas en dos columnas, por ejemplo:

password_salt VARCHAR(16) 
password_hash VARCHAR(40) 

Antes de guardar una nueva contraseña, tome la contraseña proporcionada por el usuario ($clear_password), crear una cadena aleatoria ($salt) y el uso de ambos para crear un hash (sha1sum($salt . $clear_password). Almacene tanto la sal como el hash y deseche la contraseña clara.

Para validar una contraseña, recupere la sal almacenada para el usuario dado, genere el hash y vea si coincide con el hash en DB.

Esta técnica se llama salted passwords.

+0

Gracias por su pronta respuesta, es una buena idea para el riesgo de seguridad – SKu

+1

@SKu Lea esto primero - http://codahale.com/how-to-safely-store-a-password/. Usar sha1 no es suficiente. –

+0

bueno para la seguridad pero no tiene que hacer nada con la pregunta no? – joel

Cuestiones relacionadas