Schleife über einen Tisch und kodieren für ein Feld mit SHA256 Base64 hash

stimmen
-1

Ich brauche eine Spalte zu aktualisieren, die derzeit ein Klartext-Passwort mit einem eigenen SHA256 base64 Kennwort enthält. Um dies zu tun, ich bin ein Cursor auf Schleife durch jeden Datensatz und kodieren das Passwort verwenden, aber nach der Ausführung alle Datensätze die gleiche verschlüsselte Passwort.

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;
Veröffentlicht am 19/03/2020 um 21:58
quelle vom benutzer
In anderen Sprachen...                            

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