Loop μέσα από ένα τραπέζι και να κωδικοποιήσει ένα πεδίο με SHA256 base64 κατακερματισμού

ψήφοι
-1

Θα πρέπει να ενημερώσετε μια στήλη που περιέχει αυτήν την περίοδο ένα απλό κωδικό κείμενο με το δικό του κωδικό SHA256 base64 της. Για να γίνει αυτό είμαι με τη χρήση ενός δρομέα στο βρόχο μέσω κάθε εγγραφή και κωδικοποιούν τον κωδικό πρόσβασης, αλλά μετά την εκτέλεση όλες οι εγγραφές έχουν την ίδια κωδικοποιημένο κωδικό πρόσβασης.

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;
Δημοσιεύθηκε 19/03/2020 στις 21:58
πηγή χρήστη
Σε άλλες γλώσσες...                            

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