ASP.NET网站制作之ASP.NET中几种加密办法
你觉得学习.NET怎么样,我懂的少,问的可能很幼稚,见笑了啊:)</p>MD5的全称是Message-DigestAlgorithm5(信息-择要算法),在90年月初由MitLaboratoryforComputerScience和Rsadatasecurityinc的Ronaldl.rivest开辟出来,经md2、md3和md4开展而来。它的感化是让年夜容量信息在用数字署名软件签订公家密匙前被"紧缩"成一种保密的格局(就是把一个恣意长度的字节串变更成必定长的年夜整数)。不论是md2、md4仍是md5,它们都必要取得一个随机长度的信息并发生一个128位的信息择要。加密哈希函数将恣意长度的二进制字符串映照为流动长度的小型二进制字符串。加密哈希函数有如许一个属性:在盘算上不年夜大概找到散列为不异的值的两个分歧的输出;也就是说,两组数据的哈希值仅在对应的数据也婚配时才会婚配。数据的大批变动会在哈希值中发生不成预知的大批变动。以是你很难从加密后的笔墨中找到千丝万缕。
SHA1的全称是SecureHashAlgorithm(平安哈希算法)
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/**////<summary>
2///办法一:经由过程利用new运算符创立工具
3///</summary>
4///<paramname="strSource">必要加密的明文</param>
5///<returns>前往16位加密了局,该了局取32位加密了局的第9位到25位</returns>
6publicstringGet_MD5_Method1(stringstrSource)
7{
8 //new
9 System.Security.Cryptography.MD5md5=newSystem.Security.Cryptography.MD5CryptoServiceProvider();
10
11 //猎取密笔墨节数组
12 byte[]bytResult=md5.ComputeHash(System.Text.Encoding.Default.GetBytes(strSource));
13
14 //转换成字符串,并取9到25位
15 stringstrResult=BitConverter.ToString(bytResult,4,8);
16 //转换成字符串,32位
17 //stringstrResult=BitConverter.ToString(bytResult);
18
19 //BitConverter转换出来的字符串会在每一个字符两头发生一个分开符,必要往撤除
20 strResult=strResult.Replace("-","");
21 returnstrResult;
22}
23
24/**////<summary>
25///办法二:经由过程挪用特定加密算法的笼统类上的Create办法,创立完成特定加密算法的工具。
26///</summary>
27///<paramname="strSource">必要加密的明文</param>
28///<returns>前往32位加密了局</returns>
29publicstringGet_MD5_Method2(stringstrSource)
30{
31 stringstrResult="";
32
33 //Create
34 System.Security.Cryptography.MD5md5=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(inti=0;i<bytResult.Length;i++)
41 {
42 //16进制转换
43 strResult=strResult+bytResult.ToString("X");
44 }
45 returnstrResult;
46}
47
48/**////<summary>
49///办法三:间接利用HashPasswordForStoringInConfigFile天生
50///</summary>
51///<paramname="strSource">必要加密的明文</param>
52///<returns>前往32位加密了局</returns>
53publicstringGet_MD5_Method3(stringstrSource)
54{
55 returnSystem.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strSource,"MD5");
56}
这些加密函数都是在服务器端实行,也就是说,当用户输出暗码后,从客户端到服务器端传输时,用户的暗码没有任何回护,很伤害。银行的做法是在客户端安装ActiveX控件,在客户端就把一些主要信息举行加密,再发送。这个偶就不会拉,很但愿能进修进修做这类ActiveX控件。
我也不知道,我原来理解的,NET就是C++编程,只是与JAVA相对,呵呵。以为.ET就是高级C++编程。 提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 我的意思是.net好用,从功能上来说比JAVA强还是很明显的。 ASP.NET:ASP.net是Microsoft.net的一部分,作为战略产品,不仅仅是ActiveServerPage(ASP)的下一个版本;它还提供了一个统一的Web开发模型,其中包括开发人员生成企业级Web应用程序所需的各种服务。ASP.NET的语法在很大程度上与ASP兼容,同时它还提供一种新的编程模型和结构,可生成伸缩性和稳定性更好的应用程序,并提供更好的安全保护。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。 网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项!
页:
[1]