public class MD5Help
{
//此代碼示例通過創建哈希字符串適用於任何 MD5 哈希函數 (在任何平台) 上創建 32 個字符的十六進制格式哈希字符串官網案例改編
/// <summary>
///獲取32位md5加密
/// </summary>
/// <param name="source">待解密的字符串</param>
/// <returns></returns>
public static string Get32MD5(string source)
{
using (MD5 md5Hash = MD5.Create())
{
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(source + MD5Key));
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
string hash = sBuilder.ToString();
return hash.ToUpper();
}
}
//這樣容易解的密碼變的更難解=無解
static string MD5Key = "YI0EPm!*Af";
/// <summary>
/// 獲取16位md5加密
/// </summary>
/// <param name="source">待解密的字符串</param>
/// <returns></returns>
public static string Get16MD5(string source)
{
using (MD5 md5Hash = MD5.Create())
{
byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(source + MD5Key));
//轉換成字符串,並取9到25位
string sBuilder = BitConverter.ToString(data, 4, 8);
//BitConverter轉換出來的字符串會在每個字符中間產生一個分隔符,需要去除掉
sBuilder = sBuilder.Replace("-", "");
return sBuilder.ToString().ToUpper();
}
}
}
原文地址:https://www.cnblogs.com/oorz/p/8878491.html