• Domingo 22 de Diciembre de 2024, 07:53

Autor Tema:  Probremas con encriptacion md5 en php  (Leído 3773 veces)

sayri

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Probremas con encriptacion md5 en php
« en: Miércoles 9 de Febrero de 2011, 18:14 »
0
que tal
tengo un problema con la encriptacion de contraseña
bueno hazta la hora de registrar la contraseña encriptada de un usuario en la bd funciona normal, el problema es cuando quiero hacer la validacion de usuario, no me valida la contraseña encriptada
* cuando hago la comprobacion con (ECHO) de la contraseña encriptada que introdusco  en la validacion de usuario me doy con la sorpresa que es distinta a la que gurde en la base de datos

este es el codigo que utilizo para guardar

$conti = md5($contra);
$sql="INSERT INTO users(id_per,usuario,contraseña,level)"."VALUES ('$empre','$usuarios','$conti','$select')";


y este el el codigo que uso para la validacion

$contia = md5($pass);

$result = mysql_query("SELECT level FROM users WHERE usuario LIKE '%$login%' and contraseña LIKE '%$contia%'"  , $link);

$num=mysql_numrows($result);
mysql_close($link);

$i=0;
while ($i < $num) {
$level=mysql_result($result,$i,'level');
if($level==2){
echo "Inicio de Sesion Exitosa como Administrador de la Pagina";

}elseif($level==1){
echo "Inicio de Sesion Exitoso";

}
elseif($level==3){
echo "Inicio de Sesion Exitoso";

}
else{
echo "No Existe el Usuario ó La Contraseña es Incorrecta";
}
$i++;
}

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Probremas con encriptacion md5 en php
« Respuesta #1 en: Miércoles 9 de Febrero de 2011, 18:23 »
0
una encriptación md5 genera +/- cuarenta y tantos carácteres, debes tener en cuenta que tamaño tiene el campo en la DB a la hora de guardar
El pasado son solo recuerdos, el futuro son solo sueños

sayri

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Probremas con encriptacion md5 en php
« Respuesta #2 en: Miércoles 9 de Febrero de 2011, 18:37 »
0
el campo contraseña de la bd inicialmente lo puse con 8, pero despues lo cambie a 30 y sige el mismo problema

RadicalEd

  • Moderador
  • ******
  • Mensajes: 2430
  • Nacionalidad: co
    • Ver Perfil
Re: Probremas con encriptacion md5 en php
« Respuesta #3 en: Miércoles 9 de Febrero de 2011, 18:40 »
0
Cita de: "sayri"
el campo contraseña de la bd inicialmente lo puse con 8, pero despues lo cambie a 30 y sige el mismo problema
ahí está tu problema, lo que te dije arriba, debes por lo menos cambiar el tamaño a 50, ya que la contraseña convertida por el md5 sería algo así "cc6a8db850b520edefed4f8d10a5b106", acá hay 32 carácteres, pero las he visto más largas.
El pasado son solo recuerdos, el futuro son solo sueños

shadow_rev

  • Miembro MUY activo
  • ***
  • Mensajes: 397
  • Nacionalidad: co
  • Un SPARTAN no muere en combate
    • Ver Perfil
    • http://shadowrev.blogspot.com
Re: Probremas con encriptacion md5 en php
« Respuesta #4 en: Miércoles 9 de Febrero de 2011, 23:04 »
0
Cita de: "Edo"
[...] debes por lo menos cambiar el tamaño a 50, [...]
Con 50 es suficiente, pero yo usaría SHA1 para "encriptar" las contraseñas, que es mucho más fuerte que MD5 y genera una cadena mas larga (de 40 dígitos hexadecimales, según PHP, contra 32 que genera MD5).

Y otra cosa que veo en el código: cambia contraseña LIKE '%$contia%'" por contraseña = '$contia'" o contraseña LIKE '$contia'" (sin los %), para que compares cadenas exactas y no cadenas que contengan $contia.

Como nota adicional, pongo encriptar entre comillas porque en este caso no esta bien empleado el término. Tanto MD5 como SHA1 lo que hacen es calcular el hash de la cadena en hexadecimal usando el algoritmo que lleva su nombre, y dado que el hash no tiene reversa (no se puede obtener la cadena original a partir del hash), pues no es una encriptación en toda regla (la encriptación si tiene reversa).
Volará quien le ponga alas a sus sueños (Candidate for goddess)
Si el mal existe en este mundo, reside en el corazón de la humanidad (Edward D. Morrison - Tales of Phantasia)
Lo único que puedes cambiar del pasado, es lo que sientes por él en el presente (Lockon Stratos - Mobile Suit Gundam 00)
Ingeniero de Sistemas

sayri

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Re: Probremas con encriptacion md5 en php
« Respuesta #5 en: Jueves 10 de Febrero de 2011, 18:10 »
0
Cita de: "Edo"
ahí está tu problema, lo que te dije arriba, debes por lo menos cambiar el tamaño a 50, ya que la contraseña convertida por el md5 sería algo así "cc6a8db850b520edefed4f8d10a5b106", acá hay 32 carácteres, pero las he visto más largas.

si ese fue el problema, ahora si hace la validacion

Cita de: "shadow_rev"
Con 50 es suficiente, pero yo usaría SHA1 para "encriptar" las contraseñas, que es mucho más fuerte que MD5 y genera una cadena mas larga (de 40 dígitos hexadecimales, según PHP, contra 32 que genera MD5).

bueno revisare, haver que tal es

Cita de: "shadow_rev"
Y otra cosa que veo en el código: cambia contraseña LIKE '%$contia%'" por contraseña = '$contia'" o contraseña LIKE '$contia'" (sin los %), para que compares cadenas exactas y no cadenas que contengan $contia.

.
bueno no me havia percatado de ese detalle, lo cambiare, Gracias por la correccion