public static String GetStreamMD5(Stream stream)
{
string strResult = "";
string strHashData = "";
byte[] arrbytHashValue;
System.Security.Cryptography.MD5CryptoServiceProvider oMD5Hasher =
new System.Security.Cryptography.MD5CryptoServiceProvider();
arrbytHashValue = oMD5Hasher.ComputeHash(stream); //计算指定Stream 对象的哈希值
//由以连字符分隔的十六进制对构成的String,其中每一对表示value 中对应的元素;例如“F-2C-4A”
strHashData = System.BitConverter.ToString(arrbytHashValue);
//替换-
strHashData = strHashData.Replace("-", "");
strResult = strHashData;
return strResult;
}
以上的加密方式适合Win Form和Web Forms,只是MVC中不是用Form验证所以没有System.Security命名空间,而下面这种方式是通用的:
/// <summary>
/// 给一个字符串进行MD5加密
/// </summary>
/// <param name="strText">待加密字符串</param>
/// <returns>加密后的字符串</returns>
public static string MD5Encrypt(string strText)
{
byte[] strByte = Encoding.Default.GetBytes(strText);
MD5 md5 = new MD5CryptoServiceProvider();
byte[] result = md5.ComputeHash(strByte);
return BitConverter.ToString(result).Replace("-", "");
}
这篇博客介绍了如何在C#中通用地计算文件的MD5哈希值,适用于Win Form、Web Forms以及MVC应用程序,重点在于解决在MVC中因缺少System.Security命名空间而遇到的问题。

542

被折叠的 条评论
为什么被折叠?



