c-为什么这个MD5算法返回的似乎是内存位置,而不是散列



我正试图了解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都是新手,所以我可能做错了什么——但我觉得奇怪的是,这个例子没有打印出描述中所说的内容。

有人想看看这个吗?

printfchar转换为int。结果取决于char是否被签名(因此在您的情况下会得到符号扩展)。

你确定要使用会犯这种错误的加密软件包吗?

最新更新