【发布时间】:2015-11-09 13:37:34
【问题描述】:
我看过下面的帖子,它解释了如何在 C# 中验证密码。
我想在 sql 存储过程中做同样的事情。
select * from Person.Password
如何根据密码盐和密码哈希值验证密码?它使用哪种算法来加密密码?
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2012
我看过下面的帖子,它解释了如何在 C# 中验证密码。
我想在 sql 存储过程中做同样的事情。
select * from Person.Password
如何根据密码盐和密码哈希值验证密码?它使用哪种算法来加密密码?
【问题讨论】:
标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2012
你可以这样试试:
CREATE STORED PROCEDURE CheckPassword
@username VARCHAR(20),
@password varchar(20)
AS
BEGIN
IF (CONVERT(NVARCHAR(4000), HASHBYTES('sha1', @password), 1)) <> (select PassColumn from myTable WHERE myUser = @username )
BEGIN
print 'Password Matches'
END
else
print 'Password does not match'
END
您可以关注MSDN: How to Validate Passwords,上面写着:
验证密码
- 创建一个名为 VerifyPassword 的函数,用于检索用户的密码 来自个人资料系统的密码。
- 散列密码并将其与用户输入的密码进行比较。
- 在 VerifyPassword 函数中,创建一个 CommerceContext 对象 并调用 GetProfile 方法。
- 从 UserProfile 属性中检索 Password 属性 收藏。
- 创建一个名为 VerifyHashedPassword 的函数,用于比较 用户输入的密码与哈希密码的对比。这个功能 将使用如何散列中描述的 HashPassword 函数 密码。
【讨论】: