Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何散列密码并保存到数据库表中?_Asp.net_Vb.net_Hash_Passwords - Fatal编程技术网

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

Asp.net 如何散列密码并保存到数据库表中?,asp.net,vb.net,hash,passwords,Asp.net,Vb.net,Hash,Passwords,我有一个表单register.aspx和一个登录函数,我使用的是vb.net 在我的register.aspx中,我有两个文本框,用于输入用户名和密码,还有一个提交按钮。如果用户单击“提交”按钮,密码将被散列并与用户名一起存储在名为Customer 我想知道- 1) 如何散列密码 2) 如何将数据库中的散列值与登录时在文本框中输入的密码进行比较?您可以使用格式的身份验证.HashPasswordForStoringInConfigFile静态方法(System.Web.Security命名空间)

我有一个表单
register.aspx
和一个登录函数,我使用的是vb.net

在我的
register.aspx
中,我有两个文本框,用于输入用户名和密码,还有一个提交按钮。如果用户单击“提交”按钮,密码将被散列并与用户名一起存储在名为
Customer

我想知道-

1) 如何散列密码


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

您可以使用
格式的身份验证.HashPasswordForStoringInConfigFile
静态方法(System.Web.Security命名空间)


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


按顺序回答你的问题

  • 您只需使用以下加密类之一
  • 将哈希值存储在数据库中,因此在查询数据库时,使用哈希值 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,就不要这样做。这个世界真的不需要另一个网站,在那里你可以毫无理由地记住或共享密码

    按顺序回答您的问题

  • 您只需使用以下加密类之一
  • 将哈希值存储在数据库中,因此在查询数据库时,使用哈希值 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,就不要这样做。这个世界真的不需要另一个网站,在那里你可以毫无理由地记住或共享密码