C#基礎(chǔ)之如何利用哈希加密算法判斷兩個(gè)文件內(nèi)容是否相同
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
使用System.security.Cryptography.HashAlgorithm類(lèi)為每個(gè)文件生成一個(gè)哈希碼,然后比較兩個(gè)哈希碼是否相同。 該哈希算法為一個(gè)文件生成一個(gè)小的二進(jìn)制“指紋”,從統(tǒng)計(jì)學(xué)的角度來(lái)看,不同的文件不可能生成相同的哈希碼要生成一個(gè)哈希碼,必須首先創(chuàng)建一個(gè)HashAlgorithm對(duì)象,通過(guò)HashAlgorithm.Create方法來(lái)完成。然后調(diào)用HashAlgorithm.ComputeHash方法,它會(huì)返回一個(gè)存儲(chǔ)哈希碼的字節(jié)數(shù)組,再使用BitConverter.Tostring()將其裝換為字符串進(jìn)行比較。 源碼如下: public static bool isValidFileContent(string
filePath1, string filePath2) { //創(chuàng)建一個(gè)哈希算法對(duì)象 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ò)
|
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)... |