【问题标题】:AdventureWorks2012 DB - how the password validated in sql?AdventureWorks2012 DB - 如何在 sql 中验证密码?
【发布时间】:2015-11-09 13:37:34
【问题描述】:

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

Sql Password validator

我想在 sql 存储过程中做同样的事情。

select * from Person.Password

如何根据密码盐和密码哈希值验证密码?它使用哪种算法来加密密码?

【问题讨论】:

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


    【解决方案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. 在 VerifyPassword 函数中,创建一个 CommerceContext 对象 并调用 GetProfile 方法。
    4. 从 UserProfile 属性中检索 Password 属性 收藏。
    5. 创建一个名为 VerifyHashedPassword 的函数,用于比较 用户输入的密码与哈希密码的对比。这个功能 将使用如何散列中描述的 HashPassword 函数 密码。

    【讨论】:

    • 我想在存储过程中验证。
    • @user833985:- 更新了我的答案。请立即检查!
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-08
    • 2019-10-02
    • 1970-01-01
    相关资源
    最近更新 更多