我看过下面的帖子,解释了如何在C#中验证密码。
我想在sql存储过程中执行相同的操作。
select * from Person.Password
如何根据密码salt和密码哈希值验证密码?用于加密密码的算法是什么?
答案 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说明:
验证密码
- 创建一个名为VerifyPassword的函数来检索用户 来自个人档案系统的密码。
- 将密码哈希并将其与用户输入的密码进行比较。
- 在VerifyPassword函数内,创建一个CommerceContext对象 并调用GetProfile方法。
- 从UserProfile属性中检索Password属性 集合。
- 创建一个名为VerifyHashedPassword的函数,用于比较 用户根据哈希密码输入的密码。这个功能 将使用如何哈希中描述的HashPassword函数 密码。
醇>