Foros del Web » Programando para Internet » PHP »

ayuda desencryptar pass para logear

Estas en el tema de ayuda desencryptar pass para logear en el foro de PHP en Foros del Web. hola a todos estoy probando un login que saque de los aportes pero le quiero poner que el password sea encryptado y lo hice de ...
  #1 (permalink)  
Antiguo 01/05/2009, 13:50
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
ayuda desencryptar pass para logear

hola a todos estoy probando un login que saque de los aportes pero le quiero poner que el password sea encryptado y lo hice de esta manera.

/ Preguntaremos si se han enviado ya las variables necesarias
if (isset($_POST["username"])) {
$username = $_POST["username"];
$passwords = $_POST["password"];
$cpassword = $_POST["cpassword"];
$password = md5($passwords);
$email = $_POST["email"];

hasta ahi todo bien, registra el password encryptado, ahora el tema es cuando me quiero logear dice login incorrecto porque password != password de la db

lo que tengo puesto es lo siguiente en logeo.php

if ($_POST['enviar']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$passwords=$_POST['password'];
$password=md5($passwords);

echo $password;

if ($password==NULL || $username==NULL) {
echo "Debes completar todos los campos";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?>

alguien me podria ayudar y decir donde esta el error o como hacer para que el logeo lea la clave encryptada.

saludos.
  #2 (permalink)  
Antiguo 01/05/2009, 13:52
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: ayuda desencryptar pass para logear

Ya que MD5 siempre crea el mismo hash para una cadena X, puedes comparar AMBAS cadenas encriptadas.

Osea, if(md5($data['password']) != $password)

PD: Tu script redunda, en la parte de:

Cita:
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if($data['password'] != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
Cuando entras al else, no hay necesidad de ejecutar la consulta nuevamente, los datos en $data aun siguen presentes.
  #3 (permalink)  
Antiguo 01/05/2009, 14:15
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda desencryptar pass para logear

if ($_POST['enviar']) {
//Comprobacion del envio del nombre de usuario y password
$username=$_POST['username'];
$passwords=$_POST['password'];
$password=md5($passwords);

echo $password; //para ver que pone

if ($password==NULL || $username==NULL) {
echo "Debes completar todos los campos";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$data = mysql_fetch_array($query);
if(md5($data['password']) != $password) {
echo "Login incorrecto";
}else{
$query = mysql_query("SELECT username,password FROM users WHERE username = '$username'") or die(mysql_error());
$row = mysql_fetch_array($query);
$_SESSION["s_username"] = $row['username'];
echo "Has sido logueado correctamente ".$_SESSION['s_username']." y puedes acceder al index.php.";
}
}
}
?>

puse asi y sigue diciendo login incorrecto.
  #4 (permalink)  
Antiguo 01/05/2009, 14:27
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años, 7 meses
Puntos: 3
Respuesta: ayuda desencryptar pass para logear

PROBLEMA RESUELTO POR SI A ALGUIEN LE SIRVE, el error era en la db que tenia limitado a 30 la columana o no llegaba a poner todo el codigo encryptado entonces cuando lo comparaba el de la db era distinto porque era mas corto.
lo limite a 40 char y listo anda perfecto.

gracias.
  #5 (permalink)  
Antiguo 01/05/2009, 14:28
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 16 años, 4 meses
Puntos: 416
Respuesta: ayuda desencryptar pass para logear

EDIT: Ya veo que resolviste el problema xD. MD5 siempre crea un hash de 32 caracteres.
  #6 (permalink)  
Antiguo 29/08/2009, 12:34
 
Fecha de Ingreso: julio-2009
Mensajes: 178
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: ayuda desencryptar pass para logear

Cita:
Iniciado por diegomel Ver Mensaje
PROBLEMA RESUELTO POR SI A ALGUIEN LE SIRVE, el error era en la db que tenia limitado a 30 la columana o no llegaba a poner todo el codigo encryptado entonces cuando lo comparaba el de la db era distinto porque era mas corto.
lo limite a 40 char y listo anda perfecto.

gracias.
graciassssss
eres grande
grcias a ti resolvi mi problema
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 14:08.