Bri*_*ner 1 c unix windows sha
我在C中使用SHA1的这种实现.在Windows上工作正常,但它不能在Unix上输出正确的哈希值(在Ubuntu和Mac OS 10.8上尝试过).此外,在Ubuntu上,它从同一个消息输出不同的哈希值.
我想我可以使用其他实现,只是好奇为什么会发生这种情况.
编辑
谢谢,你们是对的.把它改成了
typedef unsigned int UINT4;
Run Code Online (Sandbox Code Playgroud)
似乎工作正常.
这些是64位unix'es吗?
/* UINT4 defines a four byte word */
typedef unsigned long int UINT4;
Run Code Online (Sandbox Code Playgroud)
在64位Linux上实际上是8个字节(但在64位Windows上是4个字节)
https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models