110,535
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 获得MD5的16进制结果
/// </summary>
public static string GetMD5(string encryptStr)
{
System.Security.Cryptography.MD5 md5 = new MD5CryptoServiceProvider();
byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(encryptStr));
string strResult = BitConverter.ToString(bytResult);
strResult = strResult.Replace("-", "");
return strResult;
}
/// <summary>
/// MD5加密 ---王雷 2007
///Email:xiaolei.org@gmail.com
/// </summary>
public class MD5
{
public MD5()
{ }
/// <summary>
/// 转换到MD5
/// </summary>
/// <param name="str">加密前字符串</param>
/// <param name="code">16位加密还是32位加密</param>
/// <returns>加密后字符串</returns>
public string to_md5(string str, int code)
{
if (code == 16) //16位MD5加密(取32位加密的9~25字符)
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower().Substring(8, 16);
}
if (code == 32) //32位加密
{
return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(str, "MD5").ToLower();
}
return "00000000000000000000000000000000";
}
}
}
/// <summary>
/// MD5 32位加密
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
static string UserMd5(string str)
{
string cl = str;
string pwd = "";
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();//实例化一个md5对像
// 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择
byte[] s = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(cl));
// 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得
for (int i = 0; i < s.Length; i++)
{
// 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符
pwd = pwd + s[i].ToString("X");
}
return pwd;
}