create - python sha1 encrypt
Arduino y Python MD5 (1)
Voy a suponer que estás usando la biblioteca MD5 desde aquí: https://github.com/tzikis/ArduinoMD5/
Parece que la biblioteca tiene un error. La MD5::make_hash()
devuelve un puntero a la memoria en la pila. Parte de esa memoria debe estar siendo alterada antes de la llamada a make_digest()
para que el resumen resultante sea parcialmente incorrecto.
Bueno, probé hash una cadena o al menos un conjunto de números en Python y lo comparo con el generado usando la biblioteca MD5 actualizada por Scott MacVicar en el Arduino pero los resultados que obtengo son diferentes.
Código Arduino:
#include <MD5.h>
void setup()
{
//initialize serial
Serial.begin(9600);
//give it a second
delay(1000);
//generate the MD5 hash for our string
unsigned char* hash=MD5::make_hash("hello");
//generate the digest (hex encoding) of our hash
char *md5str = MD5::make_digest(hash, 16);
//print it on our serial monitor
Serial.println(md5str);
}
Resultado: 5d41402abc4b2a76b9e4080020008c00
Código de Python:
from hashlib import md5
m = md5(''hello'').hexdigest()
print m
Resultado: 5d41402abc4b2a76b9719d911017c592
Por lo que puedo ver en cada intento es que la diferencia viene en los últimos 14 caracteres. ¡Pero la longitud de los hashes generados es la misma!
¿¿Qué estoy haciendo mal?? Gracias
Editar:
Utilicé un comando de la terminal y obtuve:
echo -n ''hello'' | openssl md5
Resultado: 5d41402abc4b2a76b9719d911017c592
Lo que me hace pensar que la raíz del problema está en el código arduino