All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
在asp.Net,中把图片存入数据库_[Asp.Net教程]
ASP.NET,2.0角色及成员管理_[Asp.Net教程]
定义标题的最好方法_[Html教程]
ASP.NET2.0中Gridview的使用技巧_[Asp.Net教程]
新手入门:PHP网站开发中常见问题汇总_php资料_编程技术
js也可以有自定义事件,注入就是这么爽_.net资料_编程技术
ASP.NET,2.0+Atlas编写鼠标拖放程序_.net资料_编程技术
关于phpwind,5.01-5.3,0day的分析文章_php资料_编程技术
C#中MonthCalendar控件应用实例
提高asp.net网站性能的7个方法_[Asp.Net教程]
Reading number is top 10 pictures
More attractive than sora aoi4
Photographed the passion of the clients and prostitutes in the sex trade picture2
Exquisite decoration is not paying too much4
Startling Russian girl blind date scene1
BingBingFan apple dew point photo gallery5
Summer is most suitable for young people to travel in China7
西游四格漫画(六)
奇趣的世界记录1
So beauty, will let you spray blood10
赵惟依写真1
Download software ranking
I'm come from Beijing1
1400篇各类破解文章
Boxer vs Yellow5
双旗镇刀客B
The king of fighters 97(Mobile phone games-apk)
C#与.NET技术平台实战演练
徐若瑄成名作“魔鬼天使”
WebService在.NET中的实战应用教学视频 → 第3集
Unix video tutorial8
传奇私服架设教程
aaa published in(发表于) 2013/12/18 7:54:34 Edit(编辑)
ASP.NET中MD5和SHA1加密的几种方法_.net资料_编程技术

ASP.NET中MD5和SHA1加密的几种方法_.net资料_编程技术

ASP.NET中MD5和SHA1加密的几种方法_.net资料_编程技术-你的首页-uuhomepage.com

  MD5的全称是Message-Digest Algorithm 5(信息-摘要算法),在90年代初由Mit Laboratory for Computer Science和Rsa data security inc的Ronald l. rivest开发出来,经md2、md3和md4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是md2、md4还是md5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。

  加密哈希函数将任意长度的二进制字符串映射为固定长度的小型二进制字符串。加密哈希函数有这样一个属性:在计算上不大可能找到散列为相同的值的两个不同的输入;也就是说,两组数据的哈希值仅在对应的数据也匹配时才会匹配。数据的少量更改会在哈希值中产生不可预知的大量更改。所以你很难从加密后的文字中找到蛛丝马迹。

  SHA1的全称是Secure Hash Algorithm(安全哈希算法)

  MD5 算法的哈希值大小为 128 位。而SHA1 算法的哈希值大小为 160 位。两种算法都是不可逆。

  虽说2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。但是我觉得对于我们做普通的软件来说,这个加密安全程度已经足够使用了。

  我们平常用的最多的无非就是加密用户密码,把加密好的密码存储到数据库中,进行密码比较的时候,把用户输入的密码再进行加密,然后与数据库中的密文进行比较。至于asp.net类中是如何实现加密算法的,这个我们不需要关心,会用就行了。

  下面就是Asp.net中几种加密方法。加密算法有两种,也就是上面提到的MD5和SHA1,这里我举的例子是以MD5为例,SHA1大致相同,只是使用的类不一样。

  MD5 相关类:

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")

  方法如下:(用的vs2005)


1/**////
2 /// 方法一:通过使用 new 运算符创建对象
3 ///

4 /// 需要加密的明文
5 /// 返回16位加密结果,该结果取32位加密结果的第9位到25位
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 /**////
25 /// 方法二:通过调用特定加密算法的抽象类上的 Create 方法,创建实现特定加密算法的对象。
26 ///

27 /// 需要加密的明文
28 /// 返回32位加密结果
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[i].ToString("X");
44  }
45  return strResult;
46 }
47
48 /**////
49 /// 方法三:直接使用HashPasswordForStoringInConfigFile生成
50 ///

51 /// 需要加密的明文
52 /// 返回32位加密结果
53 public string Get_MD5_Method3(string strSource)
54 {
55  return System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource, "MD5");
56 }




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.