Foros del Web » Programando para Internet » PHP »

Dudas sistema de registro de usuarios

Estas en el tema de Dudas sistema de registro de usuarios en el foro de PHP en Foros del Web. Estoy creando un sistema de registro de usuarios. He llegado a un problema curioso, con Código PHP: $password =  md5 ( $_POST [ 'password' ]);  ...
  #1 (permalink)  
Antiguo 18/07/2011, 21:16
Avatar de fgala  
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Dudas sistema de registro de usuarios

Estoy creando un sistema de registro de usuarios. He llegado a un problema curioso,

con
Código PHP:
$passwordmd5($_POST['password']); 
guardo en mi base de datos la clave de los usuarios.

Luego, cuando quiero hacer el login, obtengo igualmente de un formulario la misma clave, con la misma sentencia. Sin embargo, en el momento de compararlas (la que está en la base de datos en md5 y un md5 de la que acabo de leer del formulario) me dice que son distintas.

Con un simple echo, veo que encuentro perfectamente la fila del usuario en la base de datos de usuarios registrados y que leo y guardo bien la clave que almacené en el registro. Sin embargo, cuando me creo el md5 de la password ingresada en el formulario de login, me aparece (de nuevo con un simple echo) que son distintas.

¿Cómo con la misma sentencia se pueden crear claves distintas?

Lo mismo lo estoy haciendo mal T_T, agradecería un poco de ayuda.
  #2 (permalink)  
Antiguo 18/07/2011, 21:57
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Dudas sistema de registro de usuarios

Imagino sabes que md5 es una funcion biyectiva:
md5(md5($x)) = $x

Ahora que si eso no parece sucederte puede ser que se te esten metiendo espacios
Podrias hacer un trim() a los datos recibidos del form
__________________
Salu2!
  #3 (permalink)  
Antiguo 19/07/2011, 01:49
Avatar de fgala  
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
De acuerdo Respuesta: Dudas sistema de registro de usuarios

Hola!

gracias por responder tan rápido. Al final me ha ayudado tu comentario. Viendo los resultados que tenía, me di cuenta que estructuralmente tenían similitudes.
Sin embargo, tonto de mí, definí el VARCHAR de la base de datos demasiado corto (sólo 20 caracteres), con lo que el hash se me recortaba en algún punto.

Corregido esto, la base de datos tenía (ahora si) los datos bien.

Gracias y se puede dar el tema por cerrado ;)
  #4 (permalink)  
Antiguo 19/07/2011, 03:57
Avatar de vgonga1986  
Fecha de Ingreso: marzo-2008
Ubicación: País de Pandereta
Mensajes: 1.021
Antigüedad: 16 años, 1 mes
Puntos: 253
Respuesta: Dudas sistema de registro de usuarios

Cita:
Iniciado por Italico76 Ver Mensaje
Imagino sabes que md5 es una funcion biyectiva:
md5(md5($x)) = $x
Ehm? Creo que te estás confundiendo, md5 es una función de una única vía, no tiene inversa conocida. Si pruebas esto:
Código PHP:
<?php
echo "Texto plano: " "texto" "<br/>";
echo 
"Texto con md5: " md5("texto") . "<br/>";
echo 
"Texto con 2 md5: " md5(md5("texto")) . "<br/>";
?>
Te resulta esto:
Código:
Texto plano: texto
Texto con md5: 62059a74e9330e9dc2f537f712b8797c
Texto con 2 md5: f5169687141ad39e1c0db84f92943f1a
Un saludo.
__________________
¿Alguna pregunta, duda, acotación, nota, cuestión, reparo, comentario, demanda, crítica, interpretación, objeción, interrogante, discrepancia, observación, réplica, disquisición, apostilla o exégesis?
  #5 (permalink)  
Antiguo 19/07/2011, 03:59
Avatar de fgala  
Fecha de Ingreso: julio-2011
Mensajes: 5
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Dudas sistema de registro de usuarios

Cita:
Iniciado por vgonga1986 Ver Mensaje
Ehm? Creo que te estás confundiendo, md5 es una función de una única vía, no tiene inversa conocida. Si pruebas esto:
Código PHP:
<?php
echo "Texto plano: " "texto" "<br/>";
echo 
"Texto con md5: " md5("texto") . "<br/>";
echo 
"Texto con 2 md5: " md5(md5("texto")) . "<br/>";
?>
Te resulta esto:
Código:
Texto plano: texto
Texto con md5: 62059a74e9330e9dc2f537f712b8797c
Texto con 2 md5: f5169687141ad39e1c0db84f92943f1a
Un saludo.
No, el error era que estaba limitando a cierto número de caracteres el md5 del registro. Así que en la base de datos se guardaba "una parte" del hash. Ya está solucionado, GRACIAS!

Etiquetas: dudas, registro, sistema, usuarios, formulario
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 09:12.