最近在写一个web项目时,需要在数据库中将用户密码等一类信息进行加密处理。数据加密算法有许多  ,各有各的优缺点;在  http://www.cnblogs.com/yangywyangyw/archive/2012/07/31/2620861.html 一文中对各种加密算法进行了介绍。之前,有对数据进行加密,由于许久没写,在加密处理上出了一些问题。找了一些博客,但没能很好解决问题。 本次项目的加密,采用的是MD5加密,MD5是一个安全的散列算法,输入两个不同的明文不会得到相同的输出值,根据输出值,不能得到原始的明文,即其过程不可逆;所以要解密MD5没有现成的算法,只能用穷举法,把可能出现的明文,用MD5算法散列之后,把得到的散列值和原始的数据形成一个一对一的映射表,通过比在表中比破解密码的MD5算法散列值,通过匹配从映射表中找出破解密码所对应的原始明文。

第一步: 创建MD5Help类 

 1  public static string EncryptString(string str)
 2         {
 3             //utf8 x2
 4             //创建对象的方法,构造方法,静态方法
 5             MD5 md5 = MD5.Create();
 6             //调用MD5加密方法
 7             //将字符串转换为字节数组
 8             byte[] byteOld = Encoding.GetEncoding("GBK").GetBytes(str);
 9             byte[] byteNew = md5.ComputeHash(byteOld);
10             //将加密结果进行 转换字符串
11             StringBuilder sb = new StringBuilder();
12             foreach (byte b in byteNew)
13             {
14                 //将字符转换成16进制表示的字符串,而是占用从两头来
15                 sb.Append(b.ToString("x2"));
16             }
17             //返回加密字符串
18             return sb.ToString();
19 
20 
21         }
22     }
View Code

相关文章:

  • 2021-11-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-05
  • 2021-08-22
  • 2022-01-28
猜你喜欢
  • 2022-12-23
  • 2021-12-10
  • 2022-02-25
  • 2021-11-07
  • 2022-12-23
  • 2021-12-06
相关资源
相似解决方案