![]() |
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:
Zurzeit wird der TEXT unverschlüsselt gespeichert!
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; 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 |
AW: DBMemo Text vorm speichern verschlüsseln
Forensuche schon bemüht?
|
AW: DBMemo Text vorm speichern verschlüsseln
Nimm halt die möglichkeiten der DB
![]() |
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. |
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
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:
Gruß K-H |
AW: DBMemo Text vorm speichern verschlüsseln
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
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:
P.S.: Ich verwende zum Ver- und Entschlüsseln TJvVigenereCipher aus der ![]() |
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
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: |
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Zitat:
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Ich persönlich würde die Verschlüsselungsmöglichkeiten der Zieldatenbank verwenden. Es gibt kaum Gründe, die dagegensprechen. Wenn man unterschiedliche RDBMS unterstützen möchte, muss man eine Zwischenschicht einziehen, die die spezielle SQL-Syntax für das Ver-/Entschlüsseln bereitstellt und u.U. auf die bequeme TxTable-Komponente verzichten.
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Bei Firebird kann man das per
![]() |
AW: DBMemo Text vorm speichern verschlüsseln
Vulcan kann Verschlüsselung und FireBird 3 wird es wohl auch können, wenn es irgendwann mal kommt. Aber es ist ja bald wieder September :mrgreen:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Zitat:
Doch ist die Dateiverschlüsselung bei Access für die Katz, wenn das Passwort geknackt wird, wozu es bereits diverse Tools gibt. Bin mal gespannt auf Firebird 3 ... |
AW: DBMemo Text vorm speichern verschlüsseln
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Code:
select * from MyTable where Decrypt(CryptedField,MyKey) Like '%foo%';
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
"Third, since Firebird is open source, you can alter the code that reads and writes pages to the disk to encrypt and decrypt them. Of course, you would have to find a suitable way for client to send the decryption key to the engine. Please note that this means that all users use the same key." Frei übersetzt heißt das wohl: "Drittens kann man, seit Firebird Open Source ist, den Code ändern, der die DB-Seiten auf Datenträger liest und schreibt, indem man dort eine Ver- und Entschlüsselung implementiert. Natürlich muß man dann noch eine geeignete Methode finden, den Schlüssel zum Entschlüsseln an die Engine (damit ist wohl die DB-Engine gemeint) zu senden. Hinweis: Das bedeutet, daß alle Benutzer denselben Schlüssel verwenden." Keine Ahnung, womit Firebird entwickelt wurde und wird und wie ich selber erfolgreich am Firebird-Code rumfummeln sollte ... Ich kann leider nur Delphi, und damit bin ich im Grunde voll ausgelastet – Genies und jungen frischen Gymnasiasten und Akademikern mag es sicher anders ergehen ... Die anderen beiden Methoden, die auf der von dir verlinkten Seite stehen, sind auch nicht gerade das Gelbe vom Ei: "One is to encrypt all the data on the client before saving to database columns, and decrypt while reading." Frei übersetzt: "Eine [Lösung] wäre die Verschlüsselung der Daten in der Client-Anwendung vor dem Speichern in und die Entschlüsselung beim Lesen aus der Datenbank." "Second solution is to encrypt the filesystem where Firebird database is stored. There are cross-platform solutions like TrueCrypt, EncFS or BestCrypt that do this ..." Frei übersetzt: "Die zweite Lösung besteht darin, das Dateisystem, auf dem die Datenbank sich befindet, zu verschlüsseln. Es gibt Lösungen für mehrere Betriebssysteme, die da wären TrueCrypt, EncFS oder BestCrypt ..." |
AW: DBMemo Text vorm speichern verschlüsseln
Nein, ich meine "One is to encrypt all the data on the client before saving to database columns, and decrypt while reading."
Man muss doch nur eine UDF-DLL für Firebird mit den Routinen Encrypt/Decrypt erstellen und registrieren. Und wie man eine UDF-DLL für Firebird schreibt, steht hier ![]() Und ![]() |
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Erst entschlüsseln, dann durchsuchen, so wird es ja auch im Beispiel weiter vorn gemacht. Abgesehen von der Performance sehe ich persönlich da jetzt kein Problem.
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
|
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Allerdings könnte man sich da auch perverse Geschichten ausdenken, um das nicht so offensichtlich zu machen. Man könnte z.B. der Crypt-UDF-DLL über andere Kanäle (SSL) einen Schlüssel übergeben. Aber auch das ist nur ein 'security by obscurity', denn da die UDF meines Wissens nach für jeden Sichtbar ist, könnte ein Angreifer in jedem Fall (sofern ein Feldinhalt im Klartext bekannt ist) den Schlüssel brutfortzen (Achtung! Wechstaben nicht verbuckseln!). Als Spielerei, und um Kunden zu beeindrucken, sollte das aber allemal reichen. Nebenbei ist es auch halbwegs sicher, also man kann nicht einfach in die Daten reinglotzen. |
AW: DBMemo Text vorm speichern verschlüsseln
Zitat:
Du hast in der DB alles verschlüsselt. Bei Programmstart werden virtuelle Tabellen mit den entschlüsselten Daten angelegt, um die Daten durchsuchen zu können. Bei Programmende werden die Daten der virtuellen Tabelle wieder verschlüsselt und in die ursprünglichen Tabellen zurückgeschrieben, die virtuellen Tabellen werden entfernt. Ein abschließendes Backup und Restore sorgt für eine aufgeräumte Datenbank. Größere Firmen bzw. die gebräuchlichsten ERP-Systeme verwenden in der Regel sowieso keinen Firebird-Server, soweit ich das überhaupt beurteilen kann. Was mir bislang an Firmen-DBs untergekommen ist, war ausnahmslos nicht verschlüsselt. |
AW: DBMemo Text vorm speichern verschlüsseln
Die Sicherheit sollte über Benutzerkonten hinreichend geregelt sein. Verschlüsseln ist immer mit einem Performanceverlust verbunden.
Also getackerte Hosenträger zum Gürtel muss natürlich ein Crypten herhalten, aber i.A. reichen dann TrueCrypt etc. aus. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:25 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