Lus door een tafel en coderen voor een veld met SHA256 base64 hash

stemmen
-1

Ik moet een kolom die op dit moment een leesbare tekst wachtwoord met zijn eigen SHA256 base64 wachtwoord bevat werken. Om dit te doen, dus ik ben met behulp van een cursor naar lus door elk record en het coderen van het wachtwoord, maar na de uitvoering van alle records dezelfde gecodeerde wachtwoord.

DECLARE @hash AS VARBINARY(128); 
DECLARE @h64 AS VARCHAR(128);
DECLARE @pass AS VARCHAR(500);
DECLARE @id AS INTEGER;

DECLARE cursor1 CURSOR 
    FOR SELECT [ID] FROM dbo.Table
OPEN cursor1
FETCH NEXT FROM cursor1 INTO @id
WHILE @@FETCH_STATUS = 0  
    BEGIN   
        SET @pass = (SELECT [Password] FROM dbo.Table WHERE ID = @id);
        SET @hash = HASHBYTES('SHA2_256', @pass);
        SET @h64 = CAST(N'' AS xml).value('xs:base64Binary(sql:variable(@hash))', 'varchar(128)');
        UPDATE dbo.Table SET [Password] = @h64;         
        FETCH NEXT FROM cursor1 INTO @id;  
    END;
DEALLOCATE cursor1;
De vraag is gesteld op 19/03/2020 om 21:58
bron van user
In andere talen...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more