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(); }
输出结果:
相关文章推荐
- ffmpeg一些基本命令
- Leetcode#31||Next Permutation
- hdu 1285 确定比赛名次
- 【Ex2013】【Outlook】代表发送邮件存放在个人邮箱发件箱内
- POJ 2528 Mayor's posters(离散化加线段树成段更新)
- 数据类型的理解
- KVC和KVO
- HDU2094:产生冠军
- Catch That Cow
- 菜鸟笔记之---js div 弹出层
- jQuery---分类添加内容
- 62. Event shiftKey 事件属性
- C. Replacement-----(Codeforces Round #316 (Div. 2))
- awk学习
- 手机APP
- 黑马程序员--Java之IO流
- MongoDB之索引
- 20个高级面试总结
- C++ CTime COleTime的一些操作技巧
- css定义多重背景动画