小编Ces*_*ada的帖子

验证存储过程中的密码

我在验证SQL Server存储过程中的帐户时遇到问题.我所做的是我哈希比特用户的密码.当他想登录他的帐户时,我再次使用参数(@fPassword)哈希,并将其与数据库中的哈希字节密码进行比较.问题是我不断获得不同的价值.

例如:

declare @fPassword nvarchar(4000)
set @fPassword = 'sharingan1'
IF (CONVERT(NVARCHAR(4000), HASHBYTES('sha1', @fPassword), 1)) <> (select fPassword from CustomerTable WHERE fUserName = 'cesark14')
BEGIN 
    print 'b'
END
else
    print 'c'
Run Code Online (Sandbox Code Playgroud)

我一直在'b'.但是当我替换@fPasswordfor时'sharingan1',我得到了'c'(这就是我想要的).

有谁知道为什么

(CONVERT(NVARCHAR(4000), HASHBYTES('sha1', @fPassword), 1)) 
Run Code Online (Sandbox Code Playgroud)

在哪里我设置@fPassword = 'sharingan1'不同于

(CONVERT(NVARCHAR(4000), HASHBYTES('sha1', 'sharingan1'), 1))
Run Code Online (Sandbox Code Playgroud)

sql passwords stored-procedures sql-server-2008

4
推荐指数
1
解决办法
817
查看次数