我正在做一个项目,但遇到了一些问题。我已经搜索过,但找不到任何满意的答案。
我有一个由 0 和 1 组成的巨大文件。我将 1024(我的块)位放入一个数组块中,然后我应用在 openssl/sha.h 库中实现的 SHA1() 函数。
字符块[1024];而((fgets(块,1024,fp))!= NULL)
我的意图是我的文件可以包含相同的块,我想计算有多少块是相同的。
在我的数组块中获得 1024 位后,我申请:
无符号字符 obuf[20];
SHA1(块,strlen(块),obuf);函数获取哈希函数的结果。
这里 SHA1 函数是如何工作的
unsigned char *SHA1(const unsigned char *d, unsigned long n,unsigned char *md);
之后我想将我的哈希函数结果存储在一个数组中。在我读取了所有文件之后,我将使用这个数组来比较是否有相同的哈希结果,这样我就可以开始我的项目了。但是我卡在这一点上。我不能将结果 obuf 放入数组中。
我试过: memcopy() strcopy() 或只是 myarray[N][20]=obuf; 等等
如果您建议某种方式,我会很高兴谢谢。
所以最大的问题是找到多少个哈希是唯一的?