![]() |
[DEC] Verschlüsselung als Kopieren
Hallo ihr,
ich benutze das DEC um ein Teil meiner Daten zu verschlüsseln. Das Problem ist nun aber, dass ich das Passwort ändern kann. Und wenn ich es auf einen Leerstring ändere, dann soll er es gar nicht verschlüsseln. Im allgemeinen macht mir das diese Methode:
Delphi-Quellcode:
Das wichtigste an diesem Code ist die Schleife. Wenn wir da angekommen sind, steht in SLAlteVornamen und SLAlteNachnamen der Inhalt unverschlüsselt. Meine Idee war nun, dass ich am Anfang je nach Passwort AES oder Null nehme. Und bei Null dachte ich, dass er nichts macht, außer das zu kopieren. das tut er aber leider nicht. Gibt es eine ähnlich elegante Methode das zu entschlüsseln?
procedure TDatenbankBasis.AenderePasswort(const ANeuesPasswort: string; const AWrapper : TDatenbankWrapper);
const UPDATE_QUERY = 'UPDATE Personen SET %s = "%s" WHERE PersonenID = %d'; var SLAlteVornamen : TStrings; SLAlteNachnamen : TStrings; ILPersonenIDs : TIntegerList; Cipher : TDECCipher; i: Integer; begin SLAlteNachnamen := TStringList.Create; SLAlteVornamen := TStringList.Create; ILPersonenIDs := TIntegerList.Create; // Je nach Passwort if ANeuesPasswort = '' then begin Cipher := TCipher_Null.Create; // nur kopieren end else begin Cipher := TCipher_Rijndael.Create; // Oder richtig verschlüsseln end; try // Zuerst die alten Namen entschlüsselt holen GibStringListZuSQL([SLAlteVornamen, SLAlteNachnamen], ILPersonenIDs, 'PersonenID', 'Vorname, Name', 'Personen', '', [True, True], AWrapper as TDatenbankBasis); // Cipher mit neuem Passwort initieren Cipher.Init(ANeuesPasswort); // Und dann die Namen kopieren BeginTransaction; try for i := 0 to ILPersonenIDs.Count - 1 do begin ExecSQL(Format(UPDATE_QUERY, ['Vorname', Cipher.EncodeBinary(SLAlteVornamen[i], TFormat_HEXL), ILPersonenIDs[i]]), AWrapper); Cipher.Done; ExecSQL(Format(UPDATE_QUERY, ['Name', Cipher.EncodeBinary(SLAlteNachnamen[i], TFormat_HEXL), ILPersonenIDs[i]]), AWrapper); Cipher.Done; end; finally Commit; end; finally Cipher.Free; ILPersonenIDs.Free; SLAlteVornamen.Free; SLAlteNachnamen.Free; end; end; MfG xZise |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz