AdventureWorks2012 DB - 如何在sql中验证密码?

时间:2015-11-09 13:37:34

标签: sql sql-server sql-server-2008 sql-server-2005 sql-server-2012

我看过下面的帖子,解释了如何在C#中验证密码。

Sql Password validator

我想在sql存储过程中执行相同的操作。

select * from Person.Password

Sql password

如何根据密码salt和密码哈希值验证密码?用于加密密码的算法是什么?

1 个答案:

答案 0 :(得分:1)

您可以尝试这样:

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说明:

  

验证密码

     
      
  1. 创建一个名为VerifyPassword的函数来检索用户   来自个人档案系统的密码。
  2.   
  3. 将密码哈希并将其与用户输入的密码进行比较。
  4.   
  5. 在VerifyPassword函数内,创建一个CommerceContext对象   并调用GetProfile方法。
  6.   
  7. 从UserProfile属性中检索Password属性   集合。
  8.   
  9. 创建一个名为VerifyHashedPassword的函数,用于比较   用户根据哈希密码输入的密码。这个功能   将使用如何哈希中描述的HashPassword函数   密码。
  10.