嗯,我試着在Python中對一個字符串或至少一組數字進行哈希處理,並將其與使用由Scott MacVicar在Arduino上更新的MD5庫生成的數據進行比較,但是我得到的結果是不同的。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個字符處。但生成的哈希的長度是相同的!
我在做什麼錯?由於
編輯:
我從終端使用的命令,並得到:
echo -n 'hello' | openssl md5
結果:5d41402abc4b2a76b9719d911017c592
這讓我覺得,這個問題的根源是在Arduino的代碼
你的意思是'回聲'你好'嗎?我同意,但是Arduino是錯誤的。 – Duncan
對不起編輯大聲笑是的,但我想知道代碼有什麼問題 – DarkXDroid
你有沒有解決這個問題或向開發者報告這個錯誤? – Cerin