我正在開發一個項目,並且遇到了一些問題。我已經搜索了但找不到任何滿意的答案。將OPENSSL SHA1()函數的結果導入ARRAY
我有一個巨大的文件由0和1組成。 我得到1024(我的大塊)位到一個數組塊中,然後我應用在openssl/sha.h庫中實現的SHA1()函數。
char chunk [1024]; 而((與fgets(塊,1024,FP))!= NULL)
我的本意是,我的文件可以由相同的塊,我想看看有多少塊是相同的。
後我得到了我的陣列塊1024位我申請:
無符號的字符OBUF [20];
SHA1(chunk,strlen(chunk),obuf);函數 獲取散列函數的結果。
這裏SHA1函數是如何工作
無符號字符* SHA1(const的無符號字符* d,無符號N久,無符號字符* MD);
後,我想我的存儲哈希函數的結果在array.After我讀了所有我的文件,我將用這個數組來比較,如果有相同的散列結果還是不行,通過這種方法,我可以開始我的項目。但我堅持這一點。我不能把結果obuf放到數組中。
我試過了: memcopy() strcopy() 或者只是myarray [N] [20] = obuf;等
如果你建議某種方式,我會很高興謝謝。
所以最大的問題是,找出有多少哈希是唯一的?
我只是嘗試它,它是有道理的。你是對的,這行最多可以讀取1023,但我可以修改我的問題只是把它放入數組中... – berkay 2009-12-04 11:11:33
你需要使用函數memcmp(obuf [i],obuf [j],20)'來比較哈希。如果兩個散列值相等,memcmp將返回0。我認爲你可能需要刷新你的C基礎知識...... – caf 2009-12-04 12:01:12
它不像你想象的那麼容易,因爲我們認爲我的哈希值是[5,4,5,4,3,3,2,1,5,2 ]使用memcmp很難實現這個功能。(在C初學者) – berkay 2009-12-04 12:36:51