Foros del Web » Programando para Internet » PHP »

problema al cifrar contraseña

Estas en el tema de problema al cifrar contraseña en el foro de PHP en Foros del Web. que tal gente buen dia!!! tengo el siguiente problema: tengo el tipico sistema de logueo con usuario y contraseña, en mi base de datos (mysql) ...
  #1 (permalink)  
Antiguo 03/05/2010, 12:40
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
problema al cifrar contraseña

que tal gente buen dia!!!

tengo el siguiente problema:

tengo el tipico sistema de logueo con usuario y contraseña, en mi base de datos (mysql) guardo la contraseña cifrada, (he probado con md5, crypt y sh1) y al revisar el registro en la base se guarda bien la contraseña.

el problema que tengo es que cuando un usuario introduce su usuario y contraseña me manda a la pagina en caso de error, antes de mandar el formulario hago esto:

if (isset($_POST['usuario'])) {
$loginUsername=$_POST['usuario'];
$password=$_POST['contraseña'];
$pass=md5( $password);
$MM_fldUserAuthorization = "";
$MM_redirectLoginSuccess = "catalogo.php";
$MM_redirectLoginFailed = "a.php";
$MM_redirecttoReferrer = false;
mysql_select_db($database_vivero_conn, $vivero_conn);

$LoginRS__query=sprintf("SELECT usuario, contraseña FROM usuarios WHERE usuario='%s' AND contraseña= '$pass'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $pass: addslashes($pass));

tambien he hecho lo siguiente:
a manera de comprobar, hice un formulario donde se introducen dos contraseñas, una cifrada en sh1 y otra en crypt, al enviar el form me devuelve las contraseña cifradas:

("segura" es la contraseña)
segura //en sh1
57a7a14af7df2b56284c511061f984bddc321a59
segura //en crypt
$1$mCkh40Hk$EHDpjrRXYxRZR8T8IC5Sa1

y abajo de esto tambien me devuelve, mediante una consulta, el valor de "contraseña" registrada en la base de datos, la cual la tengo cifrada con sh1:

$pass=sha1(contraseña);
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "registro")) {
$insertSQL = sprintf("INSERT INTO usuarios (usuario, contraseña, nombre, direccion, telefono)
VALUES (' ".$_POST[usuario]." ', ' ".$pass."' ,' ".$_POST[nombre]."', '".$_POST[direccion]."', '".$_POST[telefono]."' )");

57a7a14af7df2b56284c511061f984bddc321a59 //este es el valor devuelto por la consulta

al hacer estas pruebas veo que "segura" tiene el mismo valor cuando mando el formulario, y cuando la consulta me regresa el valor de contraseña, pero cuando mando el form de logueo no me funciona aunque la contraseña ya este cifrada.

que puede estar mal???
de antemano muchas gracias
  #2 (permalink)  
Antiguo 03/05/2010, 14:14
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema al cifrar contraseña

haciendo mas pruebas me doy cuenta que al mandar la informacion por el formulario en la base de datos solo se almacenan 39 de los 40 digitos, no se como arreglar eso, alguna idea al respecto??

tengo declarado el campo como varchar (40)

Última edición por lisen; 03/05/2010 a las 14:33
  #3 (permalink)  
Antiguo 03/05/2010, 14:23
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: problema al cifrar contraseña

no sé si podrá tener algo que ver, pero yo que tu no pondria contraseña, pondria password, o contrasena, para evitar el uso de la "ñ"

Pero no creo que sea esto... :S

No obstante, en la bbdd, no tienes que poner "clab", tienes que poner a5b68e7d673f83b78f2516c2007a0de3c67d7f1b para que te devuelva eso al buscar ese valor...

clab y eso no se parecen en nada...
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #4 (permalink)  
Antiguo 03/05/2010, 15:29
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema al cifrar contraseña

que tal gracias por tu rspuesta,

lo que me dices de "clab" eso lo hice solo como prueba para ver si se almacenaba la palbra "clab" cifrada en sh1, y de lo de la "ñ" lo voy a probar y lo comento.

tambien comento que al campo contraseña le aumente el rango, de 40 a 42, y asi ya me guarda los 40 caracteres de la contraseña cifrada, pero aun asi, al comparar las contraseñas en el login, me sigue saliendo el error, probare a cambiar el campo contraseña por password como me lo recomiendas,

gracias
  #5 (permalink)  
Antiguo 03/05/2010, 15:46
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema al cifrar contraseña

he probado a cambiar el campo "contraseña" por "password" pero todo sigue igual, al mandar el formulario login, me sigue mandando a la pagina de error,

alguna otra sugerencia???
  #6 (permalink)  
Antiguo 03/05/2010, 15:53
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 4 meses
Puntos: 16
Respuesta: problema al cifrar contraseña

me estoy fijando de como lo haces...

mysql_select_db($database_vivero_conn, $vivero_conn);

$LoginRS__query=sprintf("SELECT usuario, contraseña FROM usuarios WHERE usuario='%s' AND contraseña= '$pass'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $pass: addslashes($pass));

No es sprintf, es mysql_query
$LoginRS__query=mysql_query("SELECT usuario, contraseña FROM usuarios WHERE usuario='%s' AND contraseña= '$pass'",
__________________
Tengo una pregunta que a veces me tortura... ¿El loco soy yo o los locos son los demás?
  #7 (permalink)  
Antiguo 03/05/2010, 16:08
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema al cifrar contraseña

gracias por tu respuesta, estoy trabajando con dreamweaver y por falta de tiempo estoy utilizando el asistente y este es el codigo que me arroja, por eso es que lo tengo asi:

$LoginRS__query=mysql_query("SELECT usuario, contraseña FROM usuarios WHERE usuario='%s' AND contraseña= '$pass'",
get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $pass : addslashes($pass));

$LoginRS = mysql_query($LoginRS__query, $vivero_conn) or die(mysql_error());
$loginFoundUser = mysql_num_rows($LoginRS);
if ($loginFoundUser) {
$loginStrGroup = "";
  #8 (permalink)  
Antiguo 03/05/2010, 16:58
 
Fecha de Ingreso: agosto-2007
Mensajes: 123
Antigüedad: 16 años, 8 meses
Puntos: 0
Respuesta: problema al cifrar contraseña

despues de varios intentos fallidos, he vuelto a hacer los formularios de registro de usuario y de login, de esta manera he podido solucionar mi problema, muchas gracias por su tiempo

buen dia

Etiquetas: cifrar, contraseña
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 00:34.