Ну, я попробовал хэшировать строку или хотя бы набор чисел в Python и сравнить ее с тем, который был сгенерирован с использованием библиотеки MD5, обновленной Scott MacVicar на Arduino, но результаты, которые я получаю, различны.Arduino & Python MD5
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);
}
Результат: 5d41402abc4b2a76b9e4080020008c00
Python код:
from hashlib import md5
m = md5('hello').hexdigest()
print m
Результат: 5d41402abc4b2a76b9719d911017c592
Из того, что я могу видеть в каждой попытке, что разница приходит на последних 14 символах. Но длина сгенерированных хэшей одинакова!
Что я делаю неправильно? Благодаря
Edit:
Я использовал команду из терминала и получил:
echo -n 'hello' | openssl md5
Результат: 5d41402abc4b2a76b9719d911017c592
Что заставляет меня думать, что корень проблемы заключается в Arduino кода
Вы имели в виду 'echo 'hello''? Я согласен, но это Ардуино ошибается. – Duncan
Извините, отредактировал lol yes, но я хотел знать, что не так с кодом в любом случае – DarkXDroid
Вы когда-нибудь разрешали это или сообщали об этой ошибке разработчику? – Cerin