我想知道如何在SQL Server 2008中加密我的密码列。我已经阅读了this文章,但我仍然不知道如何...是否有更容易理解的教程?谢谢!
答案 0 :(得分:4)
通常的做法是存储密码的哈希值。像:
HASHBYTES('SHA1', convert(varbinary(32), @password))
使用哈希,您可以验证密码是否匹配,但您不知道密码本身。因此,即使黑客获得对数据库的完全访问权限,他仍然不知道密码。
有许多教程on the web。
答案 1 :(得分:2)
您应该考虑存储密码哈希而不是使用加密。如果你不知道差异,哈希(也称为单向哈希)接受输入并产生gobbledygook(称为哈希),以便对于相同的输入产生相同的gobbledygook。验证通过散列用户在客户端上输入的内容并将其与数据库中的gobbledygook进行比较来进行。如果匹配,则密码相同。在没有详细说明的情况下,哈希永远不会被恢复为纯文本,这是他们的保护。然而,加密涉及创建一个密码,这样如果你有解密密钥,你可以将密码恢复为纯文本。
如果您使用的是SQL Server和ASP.NET,则应使用SqlMembershipProvider查看Forms身份验证。
答案 2 :(得分:1)
微软通过名为
的快捷方式让这变得非常容易 FormsAuthentication.HashPasswordForStoringInConfigFile
。
http://www.adventuresindevelopment.com/2009/05/23/a-simple-way-to-hash-passwords-in-aspnet/