您的位置:首页 > 其它

MD5加密以及验证加密-加盐

2015-08-14 16:12 337 查看
加密与解密算法:

/// <summary>
/// 签名字符串 32位
/// </summary>
/// <param name="input">要加密的字符串</param>
/// <param name="Key">加盐值</param>
/// <returns></returns>
public static string Sign(string prestr, string Key)
{
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
prestr = prestr + Key;
byte[] data = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(prestr));
StringBuilder sb = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sb.Append(data[i].ToString("x2"));
}
return sb.ToString();
}

/// <summary>
/// 验证签名
/// </summary>
/// <param name="prestr">需要签名的字符串</param>
/// <param name="sign">签名结果(MD5加密过后的字符串)</param>
/// <param name="key">密钥</param>
/// <param name="_input_charset">编码格式</param>
/// <returns>验证结果</returns>
public static bool Verify(string prestr, string sign, string key)
{
string mysign = Sign(prestr, key);
if (mysign == sign)
{
return true;
}
else
{
return false;
}
}


  

控制台调用:

static void Main(string[] args)
{
//密钥
string Key = ",.huangfu/?";

//原始密码
string Prestr = "huangfu";

//显示密钥与原始密码
Console.WriteLine("原始密码:"+Prestr+"\n密钥是:"+Key);

//加密原始密码
string MD5Prestr = MD5.Sign(Prestr, Key);

//输出加密过后的密码
Console.WriteLine("经过MD5加密过后的字符串:" + MD5Prestr);

//提示输入密码
Console.WriteLine("请输入密码:");
string PassWord = Convert.ToString(Console.ReadLine());

//判断所输入密码是否与原始密码相同
if (MD5.Verify(PassWord, MD5Prestr, Key))
Console.WriteLine("密码正确!");
else
Console.WriteLine("密码错误!");

Console.ReadKey();
}


  

输出结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: