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'
私は取得し続け'b'
ます。しかし、@fPassword
forを置き換えると'sharingan1'
、'c'
(これが私が欲しいものです) になります。
誰もが理由を知っていますか
(CONVERT(NVARCHAR(4000), HASHBYTES('sha1', @fPassword), 1))
私が設定した@fPassword = 'sharingan1'
場所
(CONVERT(NVARCHAR(4000), HASHBYTES('sha1', 'sharingan1'), 1))