如何散列密码并保存到数据库表中?

问题描述:

我有一个表格register.aspx和登录功能,我使用vb.net如何散列密码并保存到数据库表中?

在我register.aspx我有两个文本框,输入用户名和密码,一个提交按钮。如果用户点击提交按钮的,密码将被散列并存储在数据库表中的用户名叫做Customer

我想知道 -

1)如何散列密码?

2)如何比较数据库中的哈希值与登录时在文本框中输入的密码?

您可以使用FormsAuthentication.HashPasswordForStoringInConfigFile静态方法(System.Web.Security命名空间)。

Dim plain="abc" 
Dim hash= FormsAuthentication.HashPasswordForStoringInConfigFile(plain, "MD5") 

要按顺序回答您的问题。

  1. 您只需在documentaion之后使用其中一个加密类。
  2. 将散列值存储在数据库中,因此在查询数据库时使用散列。

的伪代码:

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代替。这个世界真的不需要另外一个网站,因为你没有理由不得不记住或分享一个密码。