上一篇:在ASP.NET中动态生成图形(转) >>
用ASP.NET加密口令(转)
每当我们要建立数据库驱动的个人化的web站点时,都必须要保护用户的数据。尽管黑客可以盗取个人的口令,然而更严重的问题是有人能够盗走整个数据库,然后立刻就是所有的口令。
原理
有一个好的做法是不将实际的口令存储在数据库中,而是存储它们加密后的版本。当我们需要对用户进行鉴定时,只是对用户的口令再进行加密,然后将它与系统中的加密口令进行比较即可。
在ASP中,我们不得不借助外部对象来加密字符串。而.NET SDK解决了这个问题,它在System.Web.Security 名称空间中的CookieAuthentication类中提供了HashPasswordForStoringInConfigFile方法,这个方法的目的正如它的名字所提示的,就是要加密存储在配置文件甚至cookies中的口令。
例子
HashPasswordForStoringInConfigFile方法使用起来非常简单,它支持用于加密字符串的“SHA1”和“MD5”散列算法。为了看看“HashPasswordForStoringInConfigFile”方法的威力,让我们创建一个小小的ASP.NET页面,并且将字符串加密成SHA1和MD5格式。下面是这样的一个ASP.NET页面源代码:
<%@ Import Namespace="System.Web.Security" %>
<html>
<head>
<script language="VB" runat=server>
@# This function encrypts the input string using the SHA1 and MD5
@# encryption algorithms
Sub encryptString(Src As Object, E As EventArgs)
SHA1.Text = CookieAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text, "SHA1")
MD5.Text = CookieAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text, "MD5")
End Sub
</script>
</head>
<body>
<form runat=server>
<p><b>Original Clear Text Password: </b><br>
<asp:Textbox id="txtPassword" runat=server />
<asp:Button runat="server" text="Encrypt String" onClick="encryptString" /></p>
<p><b>Encrypted Password In SHA1: </b>
<asp:label id="SHA1" runat=server /></p>
<p><b>Encrypted Password In MD5: </b>
<asp:label id="MD5" runat=server /></p>
</form>
</body>
</html>
点击这里进行演示。
你可以看到,加密口令就是这么简单。我们还可以将这个功能包装在一个函数中,随时可以再利用它:
Function EncryptPassword (PasswordString as String, PasswordFormat as String) as String
If PasswordFormat = "SHA1" then
EncryptPassword = CookieAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "SHA1")
Elseif PasswordFormat = "MD5" then
EncryptPassword= CookieAuthentication.HashPasswordForStoringInConfigFile(PasswordString, "MD5")
Else
EncryptPassword = ""
End if
End Function
在数据库应用程序中使用加密方法
每当你向数据库中增加一个用户记录时,都要使用这个函数来加密口令,并将这个口令作为加密过的字符串插入字符串中。当用户登录你的站点时,用这个函数对用户输入的口令进行加密,然后将它与从数据库中恢复的那个加密口令进行比较。
下一篇:ASP.NET中的错误处理支持(转) >>
相关文章:
- · Form code generator V1.1 by Steve Schofield[bate2 等级:中级](转载:aspfree)
- · asp.net key considerations(一)从前用惯了asp的朋友看看这个吧,大家常问的如Request等问题解答得很清楚
- · 使用DataList进行3层编历
- · part1: ShowIssueCat.aspx.cs
- · part2: ShowIssueCat.aspx
- · DataNavigateUrlFormatString的使用方法
- · ASP.NET XML/XSL Transforms(转载www.aspalliance.com)
- · Hiding/Manipulating Databound Items(转载www.aspalliance.com)
- · 无刷新的聊天室的制作兼谈组件制作和ClientSide Script(一)
- · 关于异常捕获
- · 无刷新的聊天室的制作兼谈组件制作和ClientSide Script(二)
- · 转贴:用ASP.NET结合XML制作广告管理程序
- · 转贴:用ASP.NET结合XML制作广告管理程序(2)
- · ASP.NET: Dynamically set Text and Value fields for a DropDownList
- · asp.net优化(二)
- · DotNet中定制自己的表格
- · 回答讨饭猫之asp.net优化(一)
- · Common ASP.NET Code Techniques (DPC&DWC Reference)--8
- · Common ASP.NET Code Techniques (DPC&DWC Reference)--7
- · Common ASP.NET Code Techniques (DPC&DWC Reference)--9
- · 转转: ASP 内建对象Request和Respones
- · 关于.net的自定义控件(请各位大虾指正)
- · 转: ASP.NET高级应用 (2)
- · 转: ASP.NET高级应用 (1)
- · 转: ASP.NET高级应用 (3)
- · DPC: Creating a multicolumn Dropdownlist[等级:初 中]
- · DPC:Hiding Columns In A DataGrid[等级:初 中]
- · DPC:Creating a DataBound List of Radio Buttons--PART1[等级:中]
- · DPC:Creating a DataBound List of Radio Buttons--PART2[等级:中]
- · DPC:Creating a DataBound List of Radio Buttons--预览页面source code[等级:中]
- · .NET几大热点问题(转)
- · DataList控件也玩分页 (转自aspcn.com)
- · 用 StringBuilder 类替代 String
- · 杂志目录(页面部分CodeBehind)
- · 杂志目录(数据库访问部分)
- · 杂志目录(页面部分)
- · 推荐一个免费的CSharp编辑器
- · 使用JScript.NET创建asp.net页面(二)
