为什么这个MD5算法返回似乎是内存位置而不是散列?
问题描述:
我想围绕布拉德康特MD5算法包扎我的头。为什么这个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都是新的,所以我可能会做错事 - 但我觉得这个例子并不打印说明应该说的东西。
有人会关心检查吗?
谢谢!
将[mcve]代码添加到问题中。 –
看起来像16位值符号扩展到32位 - 可能使用'int16_t'而不是'uint16_t'? –