NET中几种加密方法

那么些加密函数都以在劳动器端施行,相当于说,当客商输入密码后,从客户端到劳动器端传输时,用户的密码未有其余保证,很危急。银行的做法是在顾客端安装ActiveX控件,在客商端就把部分最首要新闻举行加密,再发送。那些偶就不会拉,很期望能学习深造做这种ActiveX控件。

情势如下:(用的vs二〇〇六)

1/**//// <summary>
2 /// 方法一:通过使用 new 运算符创建对象
3 /// </summary>
4 /// <param name="strSource">需要加密的明文</param>
5 /// <returns>返回16位加密结果,该结果取32位加密结果的第9位到25位</returns>
6 public string Get_MD5_Method1(string strSource)
7 {
8 //new
9  System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
10
11  //获取密文字节数组
12  byte[] bytResult = md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource));
13
14  //转换成字符串,并取9到25位
15  string strResult = BitConverter.ToString(bytResult, 4, 8);
16  //转换成字符串,32位
17  //string strResult = BitConverter.ToString(bytResult);
18
19  //BitConverter转换出来的字符串会在每个字符中间产生一个分隔符,需要去除掉
20  strResult = strResult.Replace("-", "");
21  return strResult;
22 }
23
24 /**//// <summary>
25 /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法,创建实现特定加密算法的对象。
26 /// </summary>
27 /// <param name="strSource">需要加密的明文</param>
28 /// <returns>返回32位加密结果</returns>
29 public string Get_MD5_Method2(string strSource)
30 {
31  string strResult = "";
32
33  //Create
34  System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
35
36  //注意编码UTF8、UTF7、Unicode等的选择
37  byte[] bytResult = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(strSource));
38
39  //字节类型的数组转换为字符串
40  for (int i = 0; i < bytResult.Length; i++)
41  {
42   //16进制转换
43   strResult = strResult + bytResult.ToString("X");
44  }
45  return strResult;
46 }
47
48 /**//// <summary>
49 /// 方法三:直接使用HashPasswordForStoringInConfigFile生成
50 /// </summary>
51 /// <param name="strSource">需要加密的明文</param>
52 /// <returns>返回32位加密结果</returns>
53 public string Get_MD5_Method3(string strSource)
54 {
55  return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5");
56 }
System.Security.Cryptography.MD5

System.Security.Cryptography.MD5CryptoServiceProvider()

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5")

SHA1相关类:

System.Security.Cryptography.SHA1

System.Security.Cryptography.SHA1CryptoServiceProvider()

System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "SHA1")

MD5的齐全部都是Message-Digest Algorithm 5(消息-摘要算法),在90年间初由Mit
Laboratory for Computer Science和LX570sa data security inc的罗恩ald l.
rivest开荒出来,经md2、md3和md4升高而来。它的作用是让大体积音信在用数字具名软件签订私人密匙前被”压缩”成风流倜傥种保密的格式(正是把一个自便长度的字节串转变到必然长的大整数)。不管是md2、md4依然md5,它们都急需获得三个随便长度的信息并产生二个129位的消息摘要。
加密哈希函数将随便长度的二进制字符串映射为定位长度的微型二进制字符串。加密哈希函数有那样叁本质量:在总计上相当小大概找到散列为同黄金年代的值的多个不等的输入;也便是说,两组数据的哈希值仅在对应的多寡也非常时才会合营。数据的少些改观会在哈希值中生出不可预言的汪洋改变。所以你很难从加密后的文字中找到一望可知。
SHA1的全称是Secure Hash Algorithm(安全哈希算法State of Qatar
MD5 算法的哈希值大小为1二十几人。而SHA1
算法的哈希值大小为1陆十一个人。二种算法都以不可逆。
虽说二〇〇四年一月二17日的美利坚合众国加利福尼亚州圣Baba拉的国际密码学会议(Crypto’二零零零)上,来自中黄炎子孙民共和国青海北高校学的王小云教师做了破译MD5、HAVAL-128、
MD4和ENCOREIPEMD算法的告知,公布了MD种类算法的破解结果。宣布了安于盘石的世界交通密码标准MD5的碉堡轰然倒下,引发了密码学界的风浪。可是小编认为对于大家做普通的软件以来,这么些加密安全程度早就够用使用了。
我们平时用的最多的仅仅就是加密顾客密码,把加密好的密码存款和储蓄到数据库中,举办密码相比的时候,把顾客输入的密码再开展加密,然后与数据库中的密文进行比较。至于ASP.net类中是何许促成加密算法的,那么些大家无需关爱,会用就能够了。
下边就是ASP.NET中二种加密方法。加密算法有三种,也正是地点提到的MD5和SHA1,这里小编举的例证是以MD5为例,SHA1大致雷同,只是使用的类不相仿。
MD5 相关类:

发表评论

电子邮件地址不会被公开。 必填项已用*标注