用A .NET加密口令
每当我们要建立数据库驱动的个人化的web站点时,都必须要保护用户的数据。尽管黑客可以盗取个人的口令,然而更严重的问题是有人能够盗走整个数据库,然后立刻就是所有的口令。
原理
有一个好的做法是不将实际的口令存储在数据库中,而是存储它们加密后的版本。当我们需要对用户进行鉴定时,只是对用户的口令再进行加密,然后将它与系统中的加密口令进行比较即可。
在A 中,我们不得不借助外部对象来加密字符串。而.NET SDK解决了这个问题,它在System.Web.Security 名称空间中的CookieAuthentication类中提供了HashPa wordForStoringInConfigFile方法,这个方法的目的正如它的名字所提示的,就是要加密存储在配置文件甚至cookies中的口令。
例子
HashPa wordForStoringInConfigFile方法使用起来非常简单,它支持用于加密字符串的“SHA1”和“MD5”散列算法。为了看看“HashPa wordForStoringInConfigFile”方法的威力,让我们创建一个小小的A .NET页面,并且将字符串加密成SHA1和MD5格式。下面是这样的一个A .NET页面源代码:
<%@ Import Name ace=" ystem.Web.Security" %>
<html>
<head>
< cript language="V quot; runat=server>
' This function encrypts the i ut string using the SHA1 and MD5
' encryption algorithms
Sub encryptString(Src As Object, E As EventArgs)
SHA1.Text = CookieAuthentication.HashPa wordForStoringInConfigFile(txtPa word.Text, " HA1")
MD5.Text = CookieAuthentication.HashPa wordForStoringInConfigFile(txtPa word.Text, "MD5")
End Sub
</script>
</head>
< ody>
<form runat=server>
< gt lt gt;Original Clear Text Pa word: </ gt lt r>
<a :Textbox id="txtPa word" runat=server />
<a :Button runat=" erver" text="Encrypt String" onClick="encryptString" /> lt;/ gt;
< gt lt gt;Encrypted Pa word In SHA1: </ gt;
<a :label id=" HA1" runat=server /> lt;/ gt;
< gt lt gt;Encrypted Pa word In MD5: </ gt;
<a :label id="MD5" runat=server /> lt;/ gt;
</form>
</body>
</html>
点击这里进行演示。
你可以看到,加密口令就是这么简单。我们还可以将这个功能包装在一个函数中,随时可以再利用它:
Function EncryptPa word (Pa wordString as String, Pa wordFormat as String) as String
If Pa wordFormat = " HA1" then
EncryptPa word = CookieAuthentication.HashPa wordForStoringInConfigFile(Pa wordString, " HA1")
Elseif Pa wordFormat = "MD5" then
EncryptPa word= CookieAuthentication.HashPa wordForStoringInConfigFile(Pa wordString, "MD5")
Else
EncryptPa word = " quot;
End if
End Function
在数据库应用程序中使用加密方法
每当你向数据库中增加一个用户记录时,都要使用这个函数来加密口令,并将这个口令作为加密过的字符串插入字符串中。当用户登录你的站点时,用这个函数对用户输入的口令进行加密,然后将它与从数据库中恢复的那个加密口令进行比较。


