如何散列密码并保存到数据库表中?
问题描述:
我有一个表格register.aspx
和登录功能,我使用vb.net如何散列密码并保存到数据库表中?
在我register.aspx
我有两个文本框,输入用户名和密码,一个提交按钮。如果用户点击提交按钮的,密码将被散列并存储在数据库表中的用户名叫做Customer
我想知道 -
1)如何散列密码?
2)如何比较数据库中的哈希值与登录时在文本框中输入的密码?
答
您可以使用FormsAuthentication.HashPasswordForStoringInConfigFile
静态方法(System.Web.Security命名空间)。
Dim plain="abc"
Dim hash= FormsAuthentication.HashPasswordForStoringInConfigFile(plain, "MD5")
答
要按顺序回答您的问题。
- 您只需在documentaion之后使用其中一个加密类。
- 将散列值存储在数据库中,因此在查询数据库时使用散列。
的伪代码:
Function GetUser(name, password)
hashedPassword = Hash(password)
sqlcmd = 'select userkey from user where username = @name and password = @pass'
add cmd parameter ('@name', name)
add cmd parameter ('@pass', hashedPassword)
userKey = cmd.executequry
Return userkey
End Function
这就是说,不这样做,如果你能实现的OpenID代替。这个世界真的不需要另外一个网站,因为你没有理由不得不记住或分享一个密码。