存储哈希密码

时间:2016-12-26 21:43:15

标签: sql stored-procedures hash sha256

我想散列一个varchar并将其存储在db中,但我遇到了问题 在检查它的值时,我认为我只需要再次哈希并与db值进行比较

 ALTER PROCEDURE [dbo].[AddLecteur]
                @userName NVARCHAR(50), 
                @PasswordHash NVARCHAR(50),

                @biblioPrincip int  

            AS
            BEGIN
               SET NOCOUNT ON
        declare @ErrorMessage NVARCHAR(250)
        declare @salt varbinary(4)=crypt_gen_random(4)
        BEGIN TRY

            INSERT INTO lecteur(nom, motPassword, biblioPrincipal)
            VALUES(@userName,HASHBYTES('SHA2_256',cast( @PasswordHash as varbinary(max))+@salt),  @biblioPrincip)

            SET @ErrorMessage='Success'

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

            END

插入的值是‰¥_#碿K¤IFÕšxHà6œûäÜô4îõ“R¨Ó         我在检查用户时是否应该获得相同的值,如果我使用在创建用户时插入的盐并以相同的方式散列用户输入?         第二个触发器散列提议以与创建用户时生成的提议进行比较

 ALTER PROCEDURE [dbo].[CheckngUser]
    @userName varchar(50),
    @password nvarchar(50),
    @libelle varchar(50)


    AS
    BEGIN

    declare @salt varbinary(4)
    set @salt=(select lecteur.salt from lecteur where lecteur.nom=@userName)
    select HASHBYTES('SHA2_256',cast( @password as varbinary(max))+@salt), 

    le.id,le.nom,le.[motPassword],bi.libellé from lecteur as le
    inner join biblio as bi on le.biblioPrincipal=bi.id
    where le.nom=@userName and le.motPassword=HASHBYTES('SHA2_256',cast( 

    @password as varbinary(max))+@salt)
    END

为什么我这里有这个值0x7774FB52EB1FB5D3DD731A8B64B4BA1A73F4893F8A3C9084248D774D83C3E326

0 个答案:

没有答案