//////提供用於計算指定檔案雜湊值的方法
///例如計算檔案的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陣列中去,當我們長度改變,肯定要重新...