【发布时间】:2013-10-24 14:19:06
【问题描述】:
我尝试在 Python 中散列一个字符串或至少一组数字,并将其与使用 Scott MacVicar 在 Arduino 上更新的 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 代码
【问题讨论】:
-
您的意思是
echo 'hello'?不过我同意,这是错误的 Arduino。 -
抱歉编辑了大声笑是的,但我想知道代码有什么问题
-
您是否解决过这个问题或向开发人员报告过这个错误?
-
不,我放弃了这个想法。我对其他库也有其他问题,但可以讨论解决方案