elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  funcion md5 no funciona bien en linux (pero si en windows)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: funcion md5 no funciona bien en linux (pero si en windows)  (Leído 3,661 veces)
envai

Desconectado Desconectado

Mensajes: 1


Ver Perfil
funcion md5 no funciona bien en linux (pero si en windows)
« en: 26 Febrero 2011, 15:04 pm »

Hola, he probado ya varios códigos en c++ para poder utilizar la función de calcular md5 de strings y ficheros.
Pues mi problema es que en windows, el código compilado, me devuelve un md5 correcto:
por ejemplo de a, devuelve > 0cc175b9c0f1b6a831c399e269772661
y en linux, a, devuelve > 793a9bc07e209b286fa416d6ee29a85d

Ocurre lo mismo si en lugar de pasarle un string, le paso un fichero.

Este seria uno de los códigos: http://bobobobo.wordpress.com/2010/10/17/md5-c-implementation/

Alguna idea de porque me falla en linux? (mete algún carácter al final de las cadenas, o algo raro)

Gracias de antemano!


En línea

Leber


Desconectado Desconectado

Mensajes: 338


"Fracta, non verba"


Ver Perfil WWW
Re: funcion md5 no funciona bien en linux (pero si en windows)
« Respuesta #1 en: 26 Febrero 2011, 23:27 pm »

Yo apañe esta, pero para que funciones tienes que tener las librerias de desarrollo de ssl: libssl-dev

Código:
static char *convert_md5(char const *pwd)
{
static char md5[34];
char c[3];
    MD5_CTX context;
    int i;
    unsigned char digest[16];
    unsigned int len = strlen (pwd);
   
MD5_Init(&context);
MD5_Update (&context, pwd, len);
MD5_Final(digest, &context);
memset(md5, 0, sizeof(md5));

for (i = 0; i < 16; i++) {
snprintf(c, 3, "%02x", digest[i]);
strncat(md5, c, sizeof(md5)-1);
}
   
return md5;
}

Como ves, el unico parametro que recibe es la cadena que quieres convertir a md5, y lo que te devuelve es el hash.

Espero que te ayude, saludos


En línea

"Solo los tontos carecen de preucupaciones." Johann Wolfgang Goethe
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines