/// <summary>
/// 计算文件MD5值
/// </summary>
/// <param name="pathName"></param>
/// <returns></returns>
public static string GetMd5Hash(string pathName)
{
string strResult = "";
string strHashData = "";
byte[] arrbytHashValue;
System.IO.FileStream oFileStream = null;
System.Security.Cryptography.MD5CryptoServiceProvider oMD5Hasher = new System.Security.Cryptography.MD5CryptoServiceProvider();
try
{
oFileStream = new System.IO.FileStream(pathName.Replace("\"", ""), System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.ReadWrite);
arrbytHashValue = oMD5Hasher.ComputeHash(oFileStream); //计算指定Stream 对象的哈希值
oFileStream.Close();
//由以连字符分隔的十六进制对构成的String,其中每一对表示value 中对应的元素;例如“F-2C-4A”
strHashData = System.BitConverter.ToString(arrbytHashValue);
//替换-
strHashData = strHashData.Replace("-", "");
strResult = strHashData;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
return strResult;
}
/// <summary>
/// 计算文件MD5值
/// </summary>
/// <param name="pathName"></param>
/// <returns></returns>
public static string GetMd5Hash(Stream data)
{
string strResult = "";
string strHashData = "";
byte[] arrbytHashValue;
System.Security.Cryptography.MD5CryptoServiceProvider oMD5Hasher = new System.Security.Cryptography.MD5CryptoServiceProvider();
try
{
arrbytHashValue = oMD5Hasher.ComputeHash(data); //计算指定Stream 对象的哈希值
//由以连字符分隔的十六进制对构成的String,其中每一对表示value 中对应的元素;例如“F-2C-4A”
strHashData = System.BitConverter.ToString(arrbytHashValue);
//替换-
strHashData = strHashData.Replace("-", "");
strResult = strHashData;
}
catch (System.Exception ex)
{
Console.WriteLine(ex.Message);
}
return strResult;
}