Foros del Web » Programando para Internet » PHP »

Problema con HASH y contraseñas

Estas en el tema de Problema con HASH y contraseñas en el foro de PHP en Foros del Web. Gente, Tengo el siguiente problema. Cuando el usuario ingresa en un input una contraseña, por ejemplo: 123456, transformo la contraseña: $pass = "123456"; $salt = ...
  #1 (permalink)  
Antiguo 12/09/2012, 14:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 21 años, 5 meses
Puntos: 2
Problema con HASH y contraseñas

Gente,
Tengo el siguiente problema.

Cuando el usuario ingresa en un input una contraseña, por ejemplo: 123456,
transformo la contraseña:

$pass = "123456";
$salt = "conejo blanco";
$nuevapass = hash('sha512',$salt . crypt(crc32(md5($pass))));
// Genera: 4df27dd09688e7169a4342bfd73dddf72050fb303269497503 4a5cf77b9e6946fb5f265486f723254b5af57d36f36a92a33b 5b9b3966504449bc031afd1017c9

Y si guarda en una tabla de una base.

Cuando quiero comprobar a través de otro input si es la contraseña, pongo

$contraseñarecibida = "123456";
$salt = "conejo blanco";
$contraseñarecibida= hash('sha512',$salt . crypt(crc32(md5($contraseñarecibida))));
// Genera:
895dc0e5db80fe965d1dceda231cf7aab1a520da8219578707 287265e6f421b1760e94c99598771393a4a62ef3c50e02d857 5791df5707b13dfcd39ab0b75511


El tema es que cuando uso un if para comparar (siendo distintos los hashes) me sale error:

if($nuevapass == $contraseñarecibida)
{
echo "Si";
}
else
{
echo "Error";
}

Alguno podría darme una mano? MIL GRACIAS!
Su siempre ignorante amigo Dago.
  #2 (permalink)  
Antiguo 12/09/2012, 14:31
Avatar de esteban_dc  
Fecha de Ingreso: septiembre-2012
Ubicación: México, D. F., Mexico
Mensajes: 9
Antigüedad: 12 años, 2 meses
Puntos: 3
Respuesta: Problema con HASH y contraseñas

Para eso crea mejor una función

function encriptar($magicword,$pass){
return hash('sha512',$magicword . crypt(crc32(md5($pass))));
}

$magicword = "conejo blanco";
$pass1 = encriptar($magicword,"123456");
$pass2 = encriptar($magicword,"123456");

echo ($pass1 != $pass2)?'Error':'Si';
  #3 (permalink)  
Antiguo 12/09/2012, 17:13
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 21 años, 5 meses
Puntos: 2
Respuesta: Problema con HASH y contraseñas

Gracias por la pronta respuesta, pero me sigue imprimiendo error cuando compara ambas variables.
  #4 (permalink)  
Antiguo 12/09/2012, 17:17
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Problema con HASH y contraseñas

No veo para qué tanto meter un hash dentro de otro, pero en fin.

md5 devuelve strings diferentes si haces md5($pass) que si haces md5("$pass").

Y no sé o hasta donde pueda afectar que uses ñ en una variable en principio se supone que no, aunque igual sólo lo usas de ejemplo.
  #5 (permalink)  
Antiguo 12/09/2012, 17:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con HASH y contraseñas

Mira, aquí está tu código.

http://ignite.io/code/5051186aef167ba45b000000

Si usas crypt() siempre te van a salir datos distintos, te sugiero consultar el manual.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 12/09/2012, 17:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 21 años, 5 meses
Puntos: 2
Respuesta: Problema con HASH y contraseñas

ocp001a
Muchas gracias. La ñ fue un descuido al ejemplificar. El tema es que no logro que se comparen ambos hashes y que si ambas contraseñas concuerden, imprima SI o cualquier cosa, ya que sigue sacando error. Es un mecanismo de validación en el cual el usurio ingresa la contraseña que se compara con la requerida.
Gracias! :D
  #7 (permalink)  
Antiguo 12/09/2012, 17:29
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 21 años, 5 meses
Puntos: 2
Respuesta: Problema con HASH y contraseñas

Gracias a todos, en especial a pateketrueke
FUNCIONO! Estoy sumamente feliz, luego de cabecear y cabecear jajaja. Veré ahora como implementar crypt() a modo de aprendizaje. MUCHAS gracias!
  #8 (permalink)  
Antiguo 12/09/2012, 21:51
 
Fecha de Ingreso: mayo-2003
Mensajes: 312
Antigüedad: 21 años, 5 meses
Puntos: 2
Respuesta: Problema con HASH y contraseñas

pateketrueke

Logré hacerlo funcionar se si encuentra dentro de la misma página, pero no si genero, lo guardo en un campo VARCHAR de una tabla, luego extraigo el HASH y lo comparo. Si lo hago en la página sin guardar en la tabla, funciona a la perfección. ¿Hay algo que no esté viendo?
  #9 (permalink)  
Antiguo 13/09/2012, 10:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con HASH y contraseñas

Revisa el manual, si deseas usar crypt() hay normas que debes cumplir.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: contraseñas, hash, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:36.