Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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 在SQL Server 2008中加密密码列_Asp.net_Sql Server - Fatal编程技术网

Asp.net 在SQL Server 2008中加密密码列

Asp.net 在SQL Server 2008中加密密码列,asp.net,sql-server,Asp.net,Sql Server,我想知道如何在SQLServer2008中加密我的密码列。我读过这篇文章,但我仍然不知道如何。。。有更容易理解的教程吗?谢谢 通常的做法是存储密码的散列。比如: HASHBYTES('SHA1', convert(varbinary(32), @password)) 通过散列,您可以验证密码是否匹配,但您不知道密码本身。因此,即使黑客能够完全访问您的数据库,他仍然不知道密码 有很多教程。 您应该考虑存储密码的散列,而不是使用加密。在您不知道差异的情况下,散列(也称为单向散列)接受输入并生成go

我想知道如何在SQLServer2008中加密我的密码列。我读过这篇文章,但我仍然不知道如何。。。有更容易理解的教程吗?谢谢

通常的做法是存储密码的散列。比如:

HASHBYTES('SHA1', convert(varbinary(32), @password))
通过散列,您可以验证密码是否匹配,但您不知道密码本身。因此,即使黑客能够完全访问您的数据库,他仍然不知道密码


<>有很多教程。

您应该考虑存储密码的散列,而不是使用加密。在您不知道差异的情况下,散列(也称为单向散列)接受输入并生成gobbledygook(称为散列),以便对于相同的输入生成相同的gobbledygook。身份验证通过散列用户在客户端输入的内容并将其与数据库中的gobbledygook进行比较来工作。如果它们匹配,则密码相同。如果不详细说明,哈希永远无法恢复为纯文本,这是它们的保护。但是,加密需要创建密码,这样,如果您拥有解密密钥,就可以将密码恢复为纯文本

如果您使用的是SQL Server和ASP.NET,则应该使用SqlMembershipProvider进行表单身份验证


微软已经通过一款名为

FormsAuthentication.hashPasswordforStoringInfigFile


您指向“本文”的链接似乎已逃之夭夭。哎呀,这里是@user133466-您为什么不存储源应用程序中的密码哈希?您能给我看一篇关于这方面的文章吗?我正在使用ASP.net(VB.net)@user133466-如果您使用SqlMembershipProvider的Forms身份验证,它将为您处理所有哈希。使用salt值也是一个不错的主意。随机(晶体强)int或bigint可以很好地工作。我如何检查凭证?我通常使用If ProfileDataset.Tables(“RO_User”).Rows.Count=1和strPassword.ToString ProfileDataset.Tables(“RO_User”).Rows(0).Item(“User_psw”).ToString然后。。。但是现在我没有地方放hashbytes了function@user133466:以与原始密码相同的方式散列凭据。如果哈希匹配,则字符串相等。@user133466-应该注意,您必须在db中执行此操作。即,将纯文本密码传递给数据库,在其上使用Hashbytes,然后返回结果是否与数据库中存储的哈希匹配。另外,这意味着您正在以明文形式将明文密码传递给数据库,除非您加密到数据库的连接。这正是我们使用从不离开数据库的salt的原因。UI哈希+salt=MembershipProvider的数据库哈希.Upvote。在我看来,你需要一个非常有说服力的理由不使用它。同样适用于gobbledygook。@Simon:MembershipProvider将您与ASP.NET客户端绑定。“给它添加新功能也相当困难。”Andromar-OP已经说过他在使用ASP.NET(和SQL Server)。第一条安全规则是不要自己动手。如果用户使用Hashbytes函数,他们需要了解salt以及将纯文本一直传递到database@Andomar:是的,但是鉴于OP已经声明他正在使用ASP.NET,并且正在询问诸如哈希之类的基础知识,我怀疑MembershipProvider现在可以满足他的所有需求@用户133466:我建议您查看一下,并做出明智的决定,看看它是否满足您的需求。