C#基礎(chǔ)之如何利用哈希加密算法判斷兩個文件內(nèi)容是否相同
當(dāng)前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
使用System.security.Cryptography.HashAlgorithm類為每個文件生成一個哈希碼,然后比較兩個哈希碼是否相同。 該哈希算法為一個文件生成一個小的二進制“指紋”,從統(tǒng)計學(xué)的角度來看,不同的文件不可能生成相同的哈希碼要生成一個哈希碼,必須首先創(chuàng)建一個HashAlgorithm對象,通過HashAlgorithm.Create方法來完成。然后調(diào)用HashAlgorithm.ComputeHash方法,它會返回一個存儲哈希碼的字節(jié)數(shù)組,再使用BitConverter.Tostring()將其裝換為字符串進行比較。 源碼如下: public static bool isValidFileContent(string
filePath1, string filePath2) { //創(chuàng)建一個哈希算法對象 using
(HashAlgorithm hash = HashAlgorithm.Create()) { using
(FileStream file1 = new FileStream(filePath1, FileMode.Open),file2=new
FileStream(filePath2,FileMode.Open)) { byte[]
hashByte1 = hash.ComputeHash(file1);//哈希算法根據(jù)文本得到哈希碼的字節(jié)數(shù)組 byte[]
hashByte2 = hash.ComputeHash(file2); string str1 = BitConverter.ToString(hashByte1);//將字節(jié)數(shù)組裝換為字符串 string str2 = BitConverter.ToString(hashByte2); return (str1==str2);//比較哈希碼 } }
} 使用該函數(shù)的主函數(shù)
static void Main(string[] args) { string filePath1 = @"f:/1.txt"; string filePath2 =
@"f:/2.txt"; bool valid=isValidFileContent(filePath1, filePath2); Console.WriteLine(valid.ToString()); Console.ReadKey(); } 該文章在 2021/6/29 12:08:20 編輯過
|
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |