【问题标题】:How to hash a password and save into a database table?如何散列密码并保存到数据库表中?
【发布时间】:2012-02-10 06:05:42
【问题描述】:
我有一个表单 register.aspx 和一个登录功能,我正在使用 vb.net
在我的register.aspx 中,我有两个文本框,用于用户名和密码以及一个提交按钮。如果用户点击提交按钮,密码将被散列并与用户名一起存储在名为Customer的数据库表中
我想知道-
1) 如何散列密码?
2) 登录时如何将数据库中的哈希值与文本框中输入的密码进行比较?
【问题讨论】:
标签:
asp.net
vb.net
hash
passwords
【解决方案1】:
按顺序回答您的问题。
- 您只需在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,请不要这样做。这个世界真的不需要另一个网站,你必须无缘无故地记住或分享密码。
【解决方案2】:
您可以使用FormsAuthentication.HashPasswordForStoringInConfigFile 静态方法(System.Web.Security 命名空间)。
Dim plain="abc"
Dim hash= FormsAuthentication.HashPasswordForStoringInConfigFile(plain, "MD5")