我在C中使用SHA1的这个实现 。在Windows上工作正常,但是它在Unix上不输出正确的哈希(在Ubuntu和Mac OS 10.8上试过)。 而且,在Ubuntu上,它从相同的消息中输出不同的哈希值。
我想我可以使用另一个实现,只是好奇为什么发生。
编辑
谢谢,你们是对的。 改成了
C ++程序在Windows(G + +)。 main()不启动
取得业主名称
linux execvp; ls不能访问|,没有这样的文件或目录
gcc(mac / linux)错误没有匹配的函数调用,而VisualStudio编译好的
SEEK_HOLE总是指向文件的结尾
typedef unsigned int UINT4;
似乎工作正常。
Visual Studiodebugging器的内联代码变慢
Ubuntu上的g ++ 4.8.1无法编译大的位集
Windows控制台API
为什么我的程序不是用来使用RAM和cpu,而是使用所有的RAM和cpu?
在R包中更改Mac与Linux的构build选项
这些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
如果任何一个平台是64位的,并且有一个64位unsigned long ,这个代码可能会有问题:
/* UINT4 defines a four byte word */ typedef unsigned long int UINT4;
没有仔细阅读代码,看看UINT4的使用方式是否会破坏,如果它实际上是8字节,但听起来很可疑。
typedef unsigned long int UINT4;
也许你的Unix实现使用64位无符号长整数。
尝试
#include <stdint.h> /* ... */ typedef uint32_t UINT4;
并使用C99编译器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。