【问题标题】: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】:

    按顺序回答您的问题。

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-05
        • 1970-01-01
        • 2014-11-04
        • 2021-01-14
        • 1970-01-01
        相关资源
        最近更新 更多