计算文件MD5值
本文实现了在C#中,利用MD5算法计算文件的MD5值,这里主要用到了两个知识点:
1、文件流FileStream读取本地文件
2、C#的 MD5CryptoServiceProvider 类计算
class MD5AlgorithmUtil
{
public static string GetMD5HashCodeFromFile(string filePath)
{
try
{
using (FileStream fStream = new FileStream(filePath, System.IO.FileMode.Open))
{
MD5 md5 = new MD5CryptoServiceProvider();
byte[] retVal = md5.ComputeHash(fStream);
StringBuilder builder = new StringBuilder();
for (int i = 0; i < retVal.Length; i++)
{
builder.Append(retVal[i].ToString("X2"));
}
return builder.ToString();
};
}
catch (Exception ex)
{
throw new Exception("GetMD5HashCodeFromFile() fail,error:" + ex.Message);
}
}
public static byte[] GetMD5HashBytesFromFile(string filePath)
{
try
{
using (FileStream fStream = new FileStream(filePath, System.IO.FileMode.Open))
{
MD5 md5 = new MD5CryptoServiceProvider();
return md5.ComputeHash(fStream);
};
}
catch (Exception ex)
{
throw new Exception("GetMD5HashBytesFromFile() fail,error:" + ex.Message);
}
}
}
算法检验
利用第三方MD5校验工具和上述方法对同一份文件进行MD码计算,结果一致