//将字符串转换为MD5值
public static string GetMD5ByString(string str)
{
//变成字节数组
byte[] buffer=System.Text.Encoding.UTF8.GetBytes(str);
//声明MD5对象
MD5CryptoServiceProvider md5=new MD5CryproServiceProvider();
//计算指定字节数组的指定区域的哈希值
byte[] bytes=md5.ComputeHash(buffer);
//声明一个空的字符串
string strMd5="";
for(int i=0;i<bytes.Length;i++)
{
stringMd5+=byte[i].ToString("X2");//大写32位---X2,小写32位---x2
}
return stringMd5;
}
//str为一个文件的路径
public static string GetMD5ByFile(string str)
{
string md5str="";
using(FileStream fs=new FileStream(str,FileMode.Open,FileAccess.Rread))
{
MD5CryptoServiceProvider md5=new MD5Cryptoserviceprovider();
//计算指定字节数组的指定区域的哈希值
byte[] bytes=md5.ComputeHash(fs);
for(int i=0;i<bytes.lenght;i++)
{
md5str+=bytes[i].ToString("X2");
}
}
return md5str;
}
//计算文件的MD5值
public static string GetStreamMD5(Stream stream)
{
string strResult="";
MD5CryptoServiceProvider md5=new MD5CryptoServicesProvider();
byte[] bytes=md5.ComputeHash(stream); //计算指定流对象哈希值
//由以连接字符分隔的十六进制构成的String,其中每一对表示value中对应的元素:例如"F-2C-4A"
strResult=System.BitConverter.ToString(bytes);
//替换-
strResult=strResult.Replace("-","");
return strResult;
}