Foros del Web » Programando para Internet » PHP »

Ayuda con MD5

Estas en el tema de Ayuda con MD5 en el foro de PHP en Foros del Web. Hola ¿Que tal? Tengo este código para permitir el acceso a la web, Tengo las pasword encriptadas. Alguien me puede ayudar donde poner el md5 ...
  #1 (permalink)  
Antiguo 12/01/2009, 12:21
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Ayuda con MD5

Hola ¿Que tal?

Tengo este código para permitir el acceso a la web,
Tengo las pasword encriptadas.
Alguien me puede ayudar donde poner el md5 para verificar la password y permita el ingreso?

Gracias de antemano y Cordial Saludo


<?php
include_once('./includes/conexion.php');
$link = Conectarse();
function quitar($mensaje)
{
$mensaje = str_replace("<","&lt;",$mensaje);
$mensaje = str_replace(">","&gt;",$mensaje);
$mensaje = str_replace("\'","'",$mensaje);
$mensaje = str_replace('\"',"&quot;",$mensaje);
$mensaje = str_replace("\\\\","\\",$mensaje);
return $mensaje;
}
if(trim($HTTP_POST_VARS["username"]) != "" &&
trim($HTTP_POST_VARS["password"]) != "")
{
$nickN = quitar($HTTP_POST_VARS["username"]);
$passN = quitar($HTTP_POST_VARS["password"]);

$result = mysql_query("SELECT nombre,username,password,email FROM
administradores WHERE username='$nickN'");
if($row = mysql_fetch_array($result))
{
if($row["password"] == $passN)
{
//90 dias dura la cookie
setcookie("usNick",$nickN,time()+7776000);
setcookie("usPass",$passN,time()+7776000);
?>
Ingreso exitoso, ahora sera dirigido a la pagina principal.
<SCRIPT LANGUAGE="javascript">
location.href
="./includes/backend.php";
</SCRIPT>
<?
}
else
{
echo "Password incorrecto";
}
}
else
{
echo "Administrador no existente en la base de datos";
}
mysql_free_result($result);
}
else
{
echo "Debe especificar su Username y Password";
}
mysql_close();
?>

Última edición por claudio_hbl; 12/01/2009 a las 12:28
  #2 (permalink)  
Antiguo 12/01/2009, 12:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con MD5

Pues si todos los pass estan en MD5, tienes que aplicarlo a tu variable $passN.

Saludos
  #3 (permalink)  
Antiguo 12/01/2009, 12:39
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Ayuda con MD5

Gracias por tu respesta

Eso es lo que no sé, como hacerlo lo he puesto en distintos lugares y siempre me dice Password incorrecto

Ahora lo he puesto así

$passN = md5($passN);
$nickN = quitar($HTTP_POST_VARS["username"]);
$passN = quitar($HTTP_POST_VARS["password"]);

tambien lo he puesto de las siguientes maneras:

md5($passN) = quitar($HTTP_POST_VARS["password"]);

$passN = quitar($HTTP_POST_VARS[md5("password")]);
  #4 (permalink)  
Antiguo 12/01/2009, 12:48
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con MD5

no se trata de hacer magia... y probar todo !!!

es muy simple.... la columna password de la BD ??

¿¿esta en formato MD5 ??? (si, ya se... es VARCHAR)

pero.... ¿cuando insertaste, guardaste el MD5 de la contraseña... o la contraseña sin MD5 ???

ahí esta la clave de tu problema.... que tu logística es inicua con lo que tienes en la BD

digamos que la BD es así...

| id | nick | pass |
| 2 | foo | bar |
| 3 | candy | 7aaa6b6723b6786b1bnd89zz0 |
| .. | ... | .... |

para comparar el ID=2 la contraseña no esta con MD5, osea... pasa directamente

en otro caso, debes emplear MD5 ... mira los ejemplos

Código PHP:
$pass 'bar';

$SQL "SELECT * FROM tabla WHERE pass='" $pass "'"// directo ID=2
$SQL "SELECT * FROM tabla WHERE pass='" md5($pass) . "'"// MD5 ID=???

// este otro ejemplo, funciona pero es absurdo...
// ya que sería idéntico a la primer comparación, solo que sin MD5 (lol)
$SQL "SELECT * FROM tabla WHERE MD5(pass)='" md5($pass) . "'"// ambos *** 
es muy sencillo, solo apegate a una forma de estas...

tanto puedes usar md5 con PHP o SQL, es idéntico...

NOTA el hash de un md5 es de 32 caracteres.... si el VARCHAR de tu columna de password no es de este tamaño (bueno, es obvia la deducción) falla...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 12/01/2009, 13:14
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Ayuda con MD5

Yo tengo el Select asi

$result = mysql_query("SELECT nombre,username,password,email FROM
administradores WHERE username='$nickN'

lo que pasa que tengo un archivo con sesiones que se llama login y en el es donde se leen las variables $nikN y $passN, y ahi es donde me pierdo

tu me dices que debiera ser mas o menos así:
$result = mysql_query("SELECT nombre,username,password,email FROM
administradores WHERE username='$nickN' AND password = md5(password)";
  #6 (permalink)  
Antiguo 12/01/2009, 13:18
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Ayuda con MD5

no, yo nunca te dije que hicieras algo.... solo eran observaciones !!

demás... esta bien tu SELECT

ahora, imprime el valor de $row['password'] ¿que resulta???

¿¿es esa cadena MD5??? o, ¿¿¿es la contraseña tal y como se escribe (sin MD5) ????


u otra, la variable $passN que mencionas ¿ya esta en hash-md5 ??? o, ¿es completamente plana???
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 12/01/2009, 13:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Ayuda con MD5

Recuerda que en PHP, y en la mayoria de los lenguajes, estos se ejecutan de arriba para abajo y de izquierda a derecha.

Por lo que este ejemplo:
$passN = md5($passN);
$nickN = quitar($HTTP_POST_VARS["username"]);
$passN = quitar($HTTP_POST_VARS["password"]);

No te va a servir, ya que primero sacas el MD5 de una cadena vacia, y luego le asignas el valor de $_POST, cosa que es incorrecta.

Por otro lado:

md5($passN) = quitar($HTTP_POST_VARS["password"]);

Donde haz visto que la evaluacion de una funcion se le puede asignar el resultado de otra? Al menos PHP no soporta esa sintaxis.

Saludos.
  #8 (permalink)  
Antiguo 12/01/2009, 13:53
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Ayuda con MD5

Muchas Gracias por tu ayuda.

Inconveniente Solucionado.

La solución la encontré cuando me hablaste del hash de MD5, yo tenía el password con varchar 12 lo aumente a 32 y modifique la siguiente linea y todo ok

if($row["password"] == md5($passN))

Muchas Gracias, me has ayudado mucho, a veces con la ayuda de otra persona nos hace ver cosas que no vemos o que no sabemos, es primera vez que me dispongo a usra la encriptación con MD5 y no me informe bien sobre la longitud que tiene que tener el campo para la password.

Un Cordial Saludo

Claudio González Soto
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 02:12.