Comparar vaiable con un password encriptado en PHP

Tengo una base de datos MySQL y un formulario PHP que recoge un password que el usuario introduce.
Necesito comparar si ese password es el mismo que el de la base de datos, lo que pasa es que en la bd está encriptado y por este motivo nunca son iguales.
El código que he puesto es este:
$db = mysql_connect ("localhost", "root");
mysql_select_db("mysql", $db);
If ($entorn=="ADMINISTRADOR")
{ $result = mysql_query ("SELECT password FROM user WHERE user='admin'", $db);
If (strcasecmp($passwintro,mysql_result($result, 0, "password"))==0)
{ include("admin/principal.html");
}
}
}
Al comprarar passwintro con el resultado del query siempre es distinto porque el de la BD está encriptado.
¿Cómo puedo acceder al password de la BD sin encriptar?

1 Respuesta

Respuesta
2
Tu código debería quedar tal como sigue:
$db = mysql_connect ("localhost", "root");
mysql_select_db("mysql", $db);
If ($entorn=="ADMINISTRADOR")
{ $result = mysql_query ("SELECT password FROM user WHERE user='admin'", $db);
$pass_encrypt = md5($passwintro); //Modif. a introducir
If (strcasecmp($$pass_encrypt,mysql_result($result, 0, "password"))==0)
{ include("admin/principal.html");
}
}
}
Como podrás darte cuenta he insertado en tu código la encriptación de tu variable password, guardando en $pass_encrypt el resultado de la función md5 que usa a $passwintro como argumento.
De esta manera, estás comparando el password ingresado por teclado, ahora encriptado, con el contenido del campo password obtenido mediante la query.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas