/// <summary>
/// MD5字符串加密
/// </summary>
/// <param name="str">要加密的字符串</param>
/// <returns></returns>
public static string MD5Encrypt(string str)
{
using (MD5 md5 = MD5.Create())
{
//对于中文或者某些字符,采用不同的编码生成的byte[]是不一样的,
//所以造成了采用不同编码生成的md5值不一样的情况。
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(str);
byte[] md5Buffer = md5.ComputeHash(buffer);
StringBuilder sb = new StringBuilder();
foreach (var item in md5Buffer)
{
//x2表示生成两位16位编码的字符串
sb.Append(item.ToString("x2"));
}
return sb.ToString();
}
}
/// <summary>
/// MD5加密文件
/// </summary>
/// <param name="path">要加密的文件路径</param>
/// <returns></returns>
public static string MD5EncryptFromFile(string path)
{
using (MD5 md5 = MD5.Create())
{
using (FileStream fs = new FileStream(path,FileMode.Open))
{
byte[] md5Buffer = md5.ComputeHash(fs);
StringBuilder sb = new StringBuilder();
foreach (var item in md5Buffer)
{
//x2表示生成两位16位编码的字符串
sb.Append(item.ToString("x2"));
}
return sb.ToString();
}
}
}