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

时间:2012-01-14 06:54:51

标签: asp.net vb.net hash passwords

我有一个表单register.aspx和一个登录功能,我正在使用vb.net

在我的register.aspx我有两个文本框,用户名和密码以及提交按钮。如果用户单击提交按钮上的,则密码将被散列并与名为Customer的数据库表中的用户名一起存储

我想知道 -

1)如何散列密码?

2)如何将数据库中的散列值与登录时在文本框中输入的密码进行比较?

2 个答案:

答案 0 :(得分:1)

按顺序回答您的问题。

  1. 您只需使用其中一个加密类,遵循documentaion
  2. 将散列值存储在数据库中,因此在查询数据库时,使用散列。
  3. Psuedo代码:

    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,不要这样做。世界真的不需要另一个你必须记住或共享密码的网站。

答案 1 :(得分:0)

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

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