AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

[DEC] Verschlüsselung als Kopieren

Ein Thema von xZise · begonnen am 21. Jun 2009
Antwort Antwort
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#1

[DEC] Verschlüsselung als Kopieren

  Alt 21. Jun 2009, 16:48
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:
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;
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?

MfG
xZise
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz