【发布时间】:2018-03-21 19:19:17
【问题描述】:
我正试图围绕 Brad Conte MD5 算法展开思考。
你可以在这里得到它:https://github.com/B-Con/crypto-algorithms (md5.c, md5.h, md5_test.c)
这里也是一个生成哈希的例子:http://bradconte.com/files/projects/code/md5_example.c
这个例子说它应该打印散列:
d41d8cd98f00b204e9800998ecf8427e
900150983cd24fb0d6963f7d28e17f72
d174ab98d277d9f5a5611c2c9f419d9f
但对我来说它会打印:
ffffffd41dffffff8cffffffd9ffffff8f00ffffffb204ffffffe9ffffff8009ffffff98ffffffe cfffffff8427e
ffffff900150ffffff983cffffffd24fffffffb0ffffffd6ffffff963f7d28ffffffe17f72
ffffffd174ffffffabffffff98ffffffd277ffffffd9fffffff5ffffffa5611c2cffffff9f41ffffff9dffffff9f
这些对我来说似乎是内存地址而不是哈希?
我是 C 和 MD5 的新手,所以我可能做错了什么 - 但我觉得奇怪的是,该示例没有打印描述中所说的内容。
有人愿意检查一下吗?
【问题讨论】:
-
将minimal reproducible example 代码添加到问题中。
-
看起来像符号扩展为 32 位的 16 位值 - 可能在某处使用
int16_t而不是uint16_t?