我在c中使用sha1的this implementation。在windows上运行良好,但在unix上没有输出正确的散列(在ubuntu和mac os 10.8上尝试过)。此外,在ubuntu上,它从同一条消息输出不同的散列。
我想我可以用另一个实现,只是好奇为什么会这样。
编辑
谢谢,你们说得对。改成了

typedef unsigned int UINT4;

看来效果不错。

最佳答案

这些是64位Unix的吗?

/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;

在64位Linux上实际上是8字节(但在64位Windows上是4字节)
https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models

关于c - C sha1实现在Unix上不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12035529/

10-10 14:20