C 計算檔案的 Hash 值

2022-03-28 09:59:31 字數 2435 閱讀 3085

///

///提供用於計算指定檔案雜湊值的方法

///例如計算檔案的md5值:

///

///string hashmd5=hashhelper.computemd5("myfile.txt");

///

//////

例如計算檔案的crc32值:

///

///string hashcrc32 = hashhelper.computecrc32("myfile.txt");

///

//////

例如計算檔案的sha1值:

///

///string hashsha1 =hashhelper.computesha1("myfile.txt");

///

//////

public

sealed

class

hashhelper

hashmd5=stringbuilder.tostring();

}//關閉檔案流

}//結束計算

return

hashmd5;

}//computemd5

//////

計算指定檔案的crc32值

/// ///

指定檔案的完全限定名稱

///返回值的字串形式

public

static

string computecrc32(string filename)

hashcrc32 =stringbuilder.tostring();

}//關閉檔案流

}

return

hashcrc32;

}//computecrc32

//////

計算指定檔案的sha1值

/// ///

指定檔案的完全限定名稱

///返回值的字串形式

public

static

string computesha1(string filename)

hashsha1 =stringbuilder.tostring();

}//關閉檔案流

}

return

hashsha1;

}//computesha1

}//end class: hashhelper

//////

提供 crc32 演算法的實現

///public

class

crc32 : system.security.cryptography.hashalgorithm

public

crc32(uint32 polynomial, uint32 seed)

public

override

void

initialize()

protected

override

void hashcore(byte buffer, int start, int

length)

protected

override

byte

hashfinal()

public

static uint32 compute(byte

buffer)

public

static uint32 compute(uint32 seed, byte

buffer)

public

static uint32 compute(uint32 polynomial, uint32 seed, byte

buffer)

private

static

uint32 initializetable(uint32 polynomial)

uint32 createtable = new uint32[256

];

for (int i = 0; i < 256; i++)

createtable[i] =entry;

}if (polynomial ==defaultpolynomial)

return

createtable;

}private

static uint32 calculatehash(uint32 table, uint32 seed, byte buffer, int start, int

size)

}return

crc;

}private

byte

uint32tobigendianbytes(uint32 x);}

}//end class: crc32

C 檔案hash值 BT種子的hash值

這個兩個東東,是我在網上找到的。小小的修改了一下方便大家使用。乙個是 獲取檔案雜湊值的,另外乙個是獲取torrent檔案磁力鏈結的雜湊值。檔案hash值 torrent hash值 這個是qq群 歡迎加入,一起學習程式設計。chash.h header file pragma once includ...

C 字串的 hash 值計算

c 11 中新加入的容器 unordered map 和 unordered set 底層都是雜湊表實現的,那麼對於內建型別,肯定是可以自動計算出 hash 值的,但是對於像 pair或者 vector這樣的,或者自定義的類這種複雜型別,就不能自動算出 hash 值了,編譯會提示the c stan...

HashMap為什麼重新計算hash值

hashmap是乙個儲存key value鍵值對的集合,每個鍵值對稱為乙個entity,這些entity分散儲存到乙個陣列中,這個陣列就是hashmap的主幹,我們通過乙個hash函式得到一列二進位制數去與 陣列長度 1 去 得到index陣列下標位置,然後put陣列中去,當我們長度改變,肯定要重新...