使用SQL存储过程加密SHA2_512中的密码会影响0行

时间:2016-03-19 15:42:37

标签: sql sql-server stored-procedures ssms

我正在学习数据库作为学生,我对SQL很新,我一直在努力避免在我的数据库中以纯文本格式保存密码,所以我浏览了互联网并最终使用

CREATE PROCEDURE uspAddUser
    @pAcctID char(8),
    @pLogin NVARCHAR(50), 
    @pPassword NVARCHAR(50), 
    @pLName NVARCHAR(40) = NULL, 
    @pFName NVARCHAR(40) = NULL,
    @responseMessage NVARCHAR(250) OUTPUT
AS
BEGIN
    SET NOCOUNT ON

    BEGIN TRY

        INSERT INTO AccountInfo(AcctID, LoginName, PasswordHash, LName, FName)
        VALUES(@pAcctID,@pLogin, HASHBYTES('SHA2_512', @pPassword), @pLName, @pFName)

        SET @responseMessage='Success'

    END TRY
    BEGIN CATCH
        SET @responseMessage=ERROR_MESSAGE() 
    END CATCH

END

DECLARE @responseMessage NVARCHAR(250)

EXEC uspAddUser
          @pAcctID = '00000001',
          @pLogin = 'Admin',
          @pPassword = '123',
          @pLName = 'Doe',
          @pFName = 'John',
          @responseMessage=@responseMessage OUTPUT

SELECT *
FROM AccountInfo

但它似乎不起作用。它总是影响0行。执行存储过程时,表保持空白。请告诉我我做错了什么。

0 个答案:

没有答案