我在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/