Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBMemo Text vorm speichern verschlüsseln (https://www.delphipraxis.net/169705-dbmemo-text-vorm-speichern-verschluesseln.html)

Alterauge 6. Aug 2012 15:57

Datenbank: MySQL • Version: 5.5 • Zugriff über: MyConnection

DBMemo Text vorm speichern verschlüsseln
 
Hallo,

möchte gerne den DBMemo Text (Inhalt) vorm speichern verschlüsseln!

Delphi-Quellcode:
procedure TForm1.Timer7Timer(Sender: TObject);
var
i : integer;
s : string;
begin
  if filelistbox1.Count > 0 then
  fileListbox1.ItemIndex:=0;
 if filelistbox1.ItemIndex= 0 then
 begin
DBMemo1.Lines.LoadFromFile(filelistbox1.FileName);
MyTable1.FieldByName('Status').Text:='Eingang';
MyTable1.FieldByName('Meldung').AsString := DBMemo1.Text;
DBMemo1.Lines.SaveToFile(FormatDateTime('yyyy-mm-dd_hh-nn-ss__',now)+('MySQL')+ '.asc');
MyTable1.Post;
MyTable1.Refresh;
MyTable1.Insert;
DBMemo1.Clear;
i := 0;
while i < fileListBox1.Items.count do begin
deletefile (filelistbox1.FileName);
 inc ( i );
FileListBox1.Update;
MyConnection1.Connected:=false;
MyTable1.Active:=false;
  end;
 end;
end;
Zurzeit wird der TEXT unverschlüsselt gespeichert!
Wie könnte ich es umsetzen!
Kann ein einfacher Schlüssel sein, der auch nicht so sicher ist!
Möchte nur das der Text halt verschlüsselt ist.

Wenn ich die Daten mit einem DBGrid lese,
müssen diese natürlich wieder entschlüsselt werden.
Hier brauche ich auch eine Idee!

Danke

Luckie 6. Aug 2012 16:20

AW: DBMemo Text vorm speichern verschlüsseln
 
Forensuche schon bemüht?

Bernhard Geyer 6. Aug 2012 16:21

AW: DBMemo Text vorm speichern verschlüsseln
 
Nimm halt die möglichkeiten der DB http://dev.mysql.com/doc/refman/5.1/...functions.html

Furtbichler 6. Aug 2012 19:39

AW: DBMemo Text vorm speichern verschlüsseln
 
Datenfelder (TField) bieten die Möglichkeit, über die OnGetText/OnSetText-Ereignisse, Verschlüsselungen transparent und Datenbankunabhängig zu implementieren.

Nachteil, die Verschlüsselung ist durch Reverse-Engineering knackbar.

Bernhard Geyer 6. Aug 2012 21:30

AW: DBMemo Text vorm speichern verschlüsseln
 
Zitat:

Zitat von Furtbichler (Beitrag 1177118)
Nachteil, die Verschlüsselung ist durch Reverse-Engineering knackbar.

Weiterer Nachteil: Du kannst keine SQL mehr verwenden da ja deine DB von der Verschlüsselung nix weiss

p80286 6. Aug 2012 21:46

AW: DBMemo Text vorm speichern verschlüsseln
 
Naja wenn sowas wie die Cäsar"Verschlüsselung" genutzt wird dann könnte man SQL noch nutzen. Nur was soll dieses
Zitat:

Zitat von Alterauge (Beitrag 1177104)
Kann ein einfacher Schlüssel sein, der auch nicht so sicher ist!
Möchte nur das der Text halt verschlüsselt ist.

Entweder macht man's richtig oder läßt die Finger davon.

Gruß
K-H

Perlsau 7. Aug 2012 04:19

AW: DBMemo Text vorm speichern verschlüsseln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Alterauge (Beitrag 1177104)
Hallo, möchte gerne den DBMemo Text (Inhalt) vorm speichern verschlüsseln!
Zurzeit wird der TEXT unverschlüsselt gespeichert! Wie könnte ich es umsetzen! Kann ein einfacher Schlüssel sein, der auch nicht so sicher ist! Möchte nur das der Text halt verschlüsselt ist.

Also wenn ich dich richtig verstanden habe, möchtest du den Inhalt eines Blob-Text-Feldes verschlüsseln (encode) und vor dem Anzeigen wieder entschlüsseln (decode). Weil aber DB-Memo direkt auf das entsprechende DataSource zugreift, kommst du da nur schwer ran. Ich verwende in solchen Fällen kein DBMemo, sondern ein "normales" TMemo. In der Ereignisbehandlung des entsprechenden Datasets OnAfterScroll kannst du dann die Entschlüsselung starten.

Aber bevor ich dir das jetzt lang und breit auseinandersetze, stelle ich hier lieber ein Beispiel-Projekt rein, das ich einmal für einen skeptischen Kunden angefertigt hatte, der meinte, MS-Access sei als Datenbank nicht sicher genug (siehe Anhang).

Zitat:

Zitat von Alterauge (Beitrag 1177104)
Wenn ich die Daten mit einem DBGrid lese, müssen diese natürlich wieder entschlüsselt werden. Hier brauche ich auch eine Idee!

Da machst du das genauso wie beim Memo: Kein DBGrid verwenden, sondern ein TStringGrid und in der Ereignisbehanldung für OnAfterScroll die Befüllung des StringGrid auslösen.

P.S.: Ich verwende zum Ver- und Entschlüsseln TJvVigenereCipher aus der Jedi-Komponentenpalette JvEncrypt, Compress.

Furtbichler 7. Aug 2012 06:22

AW: DBMemo Text vorm speichern verschlüsseln
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1177124)
Weiterer Nachteil: Du kannst keine SQL mehr verwenden da ja deine DB von der Verschlüsselung nix weiss

Du meinst bei Reports?

Zitat:

Zitat von Perlsau (Beitrag 1177137)
...in der Ereignisbehanldung für OnAfterScroll die Befüllung des StringGrid auslösen.

Gefällt Dir OnGetText/OnSetText nicht?

Perlsau 7. Aug 2012 06:25

AW: DBMemo Text vorm speichern verschlüsseln
 
Zitat:

Zitat von Furtbichler (Beitrag 1177140)
Du meinst bei Reports?

Ich glaube, er meint, daß man z.B. keine WHERE-Klausel mehr verwenden kann, weil man ja nicht weiß, wie die verschlüsselten Daten in der DB aussehen. Aber ich meine, man kann doch, indem man nämlich den Parameter z.B. in der WHERE-Klausel zuvor verschlüsselt. Danach müßte die DB den korrekten Wert finden ...

Zitat:

Zitat von Furtbichler (Beitrag 1177140)
Gefällt Dir OnGetText/OnSetText nicht?

Stimmt, wäre auch eine Möglichkeit ...

Furtbichler 7. Aug 2012 06:32

AW: DBMemo Text vorm speichern verschlüsseln
 
Zitat:

Zitat von Perlsau (Beitrag 1177141)
Ich glaube, er meint, daß man z.B. keine WHERE-Klausel mehr verwenden kann, weil man ja nicht weiß, wie die verschlüsselten Daten in der DB aussehen. Aber ich meine, man kann doch, indem man nämlich den Parameter z.B. in der WHERE-Klausel zuvor verschlüsselt. Danach müßte die DB den korrekten Wert finden ...

Na, das Problem ist ja generell, das man die Daten des Feldes nur mit spezieller Software verwenden kann.

Es ist generell nicht leicht, in einem verschlüsselten Text einen anderen zu finden, wenn die Verschlüsselung nicht trivial ist, denn ein Wort XY wird in einem Text anders verschlüsselt als wenn das Wort solo verschlüsselt würde.

Denk einfach mal an einfache XOR-Verschlüsselung mit einem Key:


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.
Seite 1 von 3  1 23      

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