Foros del Web » Programando para Internet » PHP »

Extraño caso PHP, MySql y MD5

Estas en el tema de Extraño caso PHP, MySql y MD5 en el foro de PHP en Foros del Web. Buenas Tardes, Verán, resulta que he estado haciendo una aplicación típica, de acceso a datos para autentifiación de usuarios. Bien, el caso es que meti ...
  #1 (permalink)  
Antiguo 25/04/2004, 06:00
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Extraño caso PHP, MySql y MD5

Buenas Tardes,

Verán, resulta que he estado haciendo una aplicación típica, de acceso a datos para autentifiación de usuarios.

Bien, el caso es que meti un dato por MySQL y la contraseña la meti con la función MD5 que tiene MySQL.

La cuestión, es que a la hora de autentificarlo con PHP no me furrulaba, y por más que lo intentaba no me furrulaba, asi que miré haber como me cifraba PHP y como lo hacía MySQL.

Mi sorpresa fue bastante grande, cuando veo que PHP me cifraba exactamente igual que MySQL, pero con dos caracteres más al final, que eran "0b". Todo lo demás coincidia.

¿Alguien sabe por que puede ser esto?
__________________
Charlie.
  #2 (permalink)  
Antiguo 25/04/2004, 15:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Puedes usar MD5() de Msyql en cuanquier momento en tus sentencias SQL ...

Si para ingresar ese Usuario . usastes phpMyadmid por ejemplo si te fijas en la sentencia SQL que usó .. para hacer tu consulta SQL por ese campo en MD5() .. usalo desde SQL también:

Código PHP:
$sql="SELECT * FROM usuario='".$usuario."' AND pass=MD5(".$pass.")"
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 25/04/2004, 15:30
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 10 meses
Puntos: 7
Ok, probaré eso. De todas formas, ¿No se supone que PHP y MySQLAdmin deberían encriptar de la misma manera?
__________________
Charlie.
  #4 (permalink)  
Antiguo 25/04/2004, 15:50
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Pues se supone que si .. el MD5() es un algoritmo tipo "hash" que es el mismo se genere con Mysql, con PHP o con otros lenguajes (hasta javascript puede generar un MD5() ..)

El problema a veces es simplemente por dos cosas:
1) .. el lenguaje X lo generó en mayusculas todo . y el lenguaje Y lo hizo en minusculas (o viceversa).
2) .. se te coló algún caracter de más a la hora de codificar tu cadena originale en MD5() y no por supuesto .. como se te "coló" nunca lo usaras para aplicar MD5() a posteriori ..

Un ejemplo clásico de este punto 2 sería:

$sql="INSERT INTO tabla campo VALUES (MD5('$algo'))";

Esos ' en MD5() (dentro de la función y como está ... serían interpretados como parte de la cadena a codificar .. ejemplo

de un $algo=nose .. quedaría para codificar: 'nose' .. si tu luego usas:

$nose=md5($algo);

y aplicas tu SELECT común:

SELECT * FROM tabla WHERE pass='$nose'

Ya no estarás comparando igual .. estaras comparando 'algo' con algo ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 27/09/2008, 13:23
 
Fecha de Ingreso: febrero-2008
Mensajes: 2
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Extraño caso PHP, MySql y MD5

Trata cambiando la longitid del campo que va usar md5 a mas de 50
porque si la longitud es menos no se podra guardar la cantidad correcta de digitos.

Por ejemplo:
Create table user(
cod_user int(4) primary key not null,
usuario varchar(20),
clave varchar(50)-----> este campo debe tener 50 o mas de 50 para poder usar md5 y no tener problemas
)
  #6 (permalink)  
Antiguo 27/09/2008, 14:11
Avatar de Snd234  
Fecha de Ingreso: mayo-2007
Ubicación: Frente al PC
Mensajes: 413
Antigüedad: 17 años
Puntos: 2
Respuesta: Extraño caso PHP, MySql y MD5

no es necesario dejarle tanto, con 32 basta... y con un campo char, ya que la longitud siempre sera la misma, 32 caracteres
__________________
KIBIT.cl
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 08:04.