C#讀取文件MD5值的實現(xiàn)代碼
本文介紹一個C#函數,可以實現(xiàn)計算文件的MD5值,可以用于文件傳輸后進行有效性校驗。
我們知道可以通過將一個字符串進行散列(Hash)運算得到一個32位字符串,將其作為密碼來保存是最常見的MD5應用。不知道大家有沒有注意到,在網上一些下載文件的地方,旁邊注明了MD5校驗值,也是一個32位十六制字符串。這個字符串怎么用呢?這就是文件的MD5加密。
當我們將一個文件從網上下載之后 ,可以計算一下文件的MD5值,然后和網上公布的MD5值進行對比。結果一致,表示文件沒有問題,如果結果不一致,有兩種可能,一是文件損壞了,無法使用;還有一種情況,那就是文件被人替換了。在下載exe文件時尤其應該注意,如果下載了一個被人替換過后的文件,那是相當危險的事,可能這個文件就被人植入了木馬。
那么應該怎么來計算文件的MD5值呢?洪哥給出了一段C#的源代碼。有興趣的朋友參考參考。注意,下面這段代碼要包含System.IO命名空間。
/// <summary>
/// 計算文件的MD5校驗
/// </summary>
/// <param name="fileName"></param>
/// <returns></returns>
public static string GetMD5HashFromFile(string fileName)
{
try
{
FileStream file = new FileStream(fileName, FileMode.Open);
System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(file);
file.Close();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
sb.Append(retVal[i].ToString("x2"));
}
return sb.ToString();
}
catch (Exception ex)
{
throw new Exception("GetMD5HashFromFile() fail,error:" + ex.Message);
}
}
大家可以看到,上面C#代碼主要創(chuàng)建了System.Security.Cryptography.MD5類,使用了它的ComputeHash方法。然后將字節(jié)數組轉換成16進制字符串返回。
大家可以通過上面的主要函數,自己用C#寫一個計算文件MD值的小程序了。
關于C#計算文件MD5值的代碼,本文就介紹這么多,希望對您有所幫助,謝謝!
相關文章
c# 用Dictionary實現(xiàn)日志數據批量插入
這篇文章主要介紹了c# 用Dictionary實現(xiàn)日志數據批量插入的步驟,幫助大家更好的理解和使用c#中的Dictionary類,感興趣的朋友可以了解下2021-02-02
C#/VB.NET 在PDF中添加文件包(Portfolio)的方法
這篇文章主要介紹了C#/VB.NET 在PDF中添加文件包(Portfolio)的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2020-06-06
使用C#獲取遠程圖片 Form用戶名與密碼Authorization認證的實現(xiàn)
本篇文章介紹了,使用C#獲取遠程圖片 Form用戶名與密碼Authorization認證的實現(xiàn)。需要的朋友參考下2013-04-04

