Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Verschlüsseln des Datenbankinhalts (https://www.delphipraxis.net/156693-verschluesseln-des-datenbankinhalts.html)

Tommy99 11. Dez 2010 12:34

Datenbank: Firebird • Version: 2.0.5 • Zugriff über: DBExpress

Verschlüsseln des Datenbankinhalts
 
Hallo zusammen,

versuche zur Zeit den Inhalt meiner Datenbank (Firebird über DBExpress) zu verschlüsseln.


Das Verschlüsseln an sich funktioniert bereits.

Beim "DataSetProvider" greife ich über das Ereignis "BeforeUpdateRecord" ein und
bin dann in der Lage sämtliche unverschlüsselte Inhalte vor dem Schreiben in die Datenbank mit einem
Algorithmus zu verschlüsseln.

Code:

procedure TForm.DataSetProviderBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet; DeltaDS: TCustomClientDataSet; UpdateKind: TUpdateKind;
var Applied: Boolean);
begin

if not VarIsEmpty(DeltaDS.FieldByName('Feld1').NewValue) then
begin
==> Verschlüsseln
end;



Nun bin ich auf der Suche nach einem Ereignis auf Basis dessen ich die
Daten anschließend nach dem Laden wieder entschlüsseln kann.

Theoretisch könnte das mit dem Ereignis "AfterOpen" im "ClientDataSet" funktionieren.

Hier habe ich allerdings dann das Problem, dass sämtliche Felder, die ich entschlüssle anschließend in der
Delta Datenmenge als geändert aufgeführt werden und dann später beim Update die Variable "NewValue" wieder gefüllt ist.

Dies wiederum erhöht die Laufzeit beim Updateprozess.

Vielleicht hat jemand eine bessere Idee, wie ich den Inhalt meiner Datenbank halbwegs sicher verschlüsseln kann.

Danke im voraus

s.h.a.r.k 11. Dez 2010 14:52

AW: Verschlüsseln des Datenbankinhalts
 
Gießt du die Daten in Objekte? Dann wäre eine O/R-Mapper-Schicht recht praktisch. So würde ich das jedenfalls handhaben.

Bummi 11. Dez 2010 20:50

AW: Verschlüsseln des Datenbankinhalts
 
OnGetText und OnSetText der Felder ??


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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