![]() |
Datenbank: MariaDB • Version: ? • Zugriff über: MyConnect
Daten verschlüsselt speichern
Würde gerne Daten in der Database verschlüsselt speichern,
und im StringGrid wieder entschlüsselt darstellen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:string; i:integer; begin //Test Text s:='Dies ist ein Test'; for i:=1 to length(s) do begin s[i]:=Chr((Ord(s[i]) Xor (i*i-i))+(3+i)*(5+i)); Memo1.text := s; // Test Memo1 Ansicht end; MyTAble1.Insert; MyTAble1.Edit; MyTable1.FieldByName('Eingabe').Text := s; MyTAble1.Post; MyTAble1.Refresh; DBGrid1.Refresh; // Daten verschlüsselt speichern for i:=1 to length(s) do begin s[i]:=Chr((Ord(s[i])-(3+i)*(5+i)) Xor (i*i-i)); end; //Endschlüsseln und im StringGrid kopieren StringGrid1.FixedCols := 0; StringGrid1.FixedRows := 1; StringGrid1.ColCount := MyTable1.FieldCount; StringGrid1.RowCount := MyTable1.RecordCount+1; Memo2.text:= s; // Test Memo2 Ansicht for i := 0 to MyTable1.FieldCount - 1 do begin StringGrid1.Cells[i,0] := MyTable1.Fields[i].DisplayName; end; MyTable1.First; while not MyTable1.Eof do begin for i := 0 to MyTable1.FieldCount - 1 do begin StringGrid1.Cells[i, MyTable1.RecNo] := MyTable1.Fields[i].AsString; end; MyTable1.Next; end; end; |
AW: Daten verschlüsselt speichern
Wo ist die Frage?
|
AW: Daten verschlüsselt speichern
Keine Ahnung, ob Maria-DB Verschlüsselung beherrscht, aber ich mache das immer so, wenn ich Tabelleninhalte verschlüsselt abspeichern will:
Im Programm arbeite ich mit einem ClientDataset. Beim Programmstart iterere ich durch die Original-Tabelle, entschlüssle die verschlüsselten Inhalte und speichere selbige im ClientDataSet. Beim Programmende speichere ich die im ClientDataSet enthaltenen Daten wieder in die Original-Tabelle, wobei die relevanten Spalten wieder verschlüsselt werden. Während des Programmlaufs arbeite ich ausschließlich mit dem ClientDataSet, das ich dann auch dem entsprechenden DataSource zuweise, um damit ein DBGrid zu "füttern". Alternativ könnte man auch im Original-Dataset ein zusätzliches Feld (Feldeditor) anlegen und in OnGetText dieses neuen Feldes den entschlüsselten Inhalt bereitstellen und in OnChange wieder speichern. War es das, was du wissen wolltest? |
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Zitat:
![]() |
AW: Daten verschlüsselt speichern
strom, der Wort-Minimalist ist wieder da ;)
Also strom, wenn es nichts kompliziertes sein muss, die Verschlüsselung mehr ein Sichtschutz als wirkliche Verschlüsselung sein soll, dann würde ich eine XOR Verschlüsselung empfehlen. Die ist sehr einfach und lässt sich nach paar Versuchen relativ schnell knacken, aber wie gesagt, sie ist sehr einfach. Und sie reicht allemal dazu den Text unleserlich zu machen. |
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Ich hab gerade seinen Code überflogen und glaube, dass er schon selbst auf XOR gekommen ist. Ich vermute, eindeutig kann ich es nicht sagen, dass die Frage an das Forum ist, ob die Verschlüsselung ok ist. Warum storm sich aber immer so kurz mit seinen Fragen hält, weiß ich nicht. Meine beste Theorie bisher ist, dass er noch einen alten CompuServe Account für 5 DM die Stunde hat und einen 14,4 kB/s Modem. Da hält man sich knapp, denn Zeit kostet Geld.
|
AW: Daten verschlüsselt speichern
Warum sollte er sich auch um ein soziales Verhalten bemühen? Er bekommt doch genügend Antworten auf dem Silbertablett serviert.
|
AW: Daten verschlüsselt speichern
Entschuldigung, hier bin ich wieder!
Die Daten werden verschlüsselt in der Datenbank abgelegt, und auch wieder ins StringGrid kopiert! Leider sind die Daten im StringGrid noch verschlüsselt! |
AW: Daten verschlüsselt speichern
Ich denke mal, dass du den Code zusammengesammelt und -kopiert hast. Du benutzt z.B. i in for-Schleifen, die nochmals eine for-Schleife mit i hat. Da weiß das arme Programm gar nimmer was nun i für einen Wert beinhalten soll. EDIT : Ach ne, stimmt ja gar nicht, ist nur ne sauschlechte Code-Formatierung.
Außerdem entschlüsselst du nicht beim Füllen der StringGrid. |
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Danke für Eure Hilfe :-)
Jetzt geht es! Könnte man was verbessern?
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:string; i:integer; begin //Test Text s:='Dies ist ein Test'; for i:=1 to length(s) do begin s[i]:=Chr((Ord(s[i]) Xor (i*i-i))+(3+i)*(5+i)); Memo1.text := s; // Test Memo1 Ansicht end; MyTAble1.Insert; MyTAble1.Edit; MyTable1.FieldByName('Eingabe').Text := s; MyTAble1.Post; MyTAble1.Refresh; DBGrid1.Refresh; // Daten verschlüsselt speichern for i:=1 to length(s) do begin s[i]:=Chr((Ord(s[i])-(3+i)*(5+i)) Xor (i*i-i)); end; //Endschlüsseln und im StringGrid kopieren StringGrid1.FixedCols := 0; StringGrid1.FixedRows := 1; StringGrid1.ColCount := MyTable1.FieldCount; StringGrid1.RowCount := MyTable1.RecordCount+1; Memo2.text:= s; // Test Memo2 Ansicht for i := 0 to MyTable1.FieldCount - 1 do begin StringGrid1.Cells[i,0] := MyTable1.Fields[i].DisplayName; end; MyTable1.First; while not MyTable1.Eof do begin for i := 0 to MyTable1.FieldCount - 1 do begin StringGrid1.Cells[0, MyTable1.RecNo] := MyTable1.FieldByName('ID').Text; StringGrid1.Cells[1, MyTable1.RecNo] := s;//MyTable1.Fields[i].AsString; end; MyTable1.Next; end; end; |
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Zitat:
Ehrlich. |
AW: Daten verschlüsselt speichern
Kleiner Tipp:
Pack dir die XOR-Verschlüsselung in eine kleine Funktion ala:
Delphi-Quellcode:
Da du XOR-Verschlüsselst kannst du das so machen, dass sowohl für die Verschlüsselung als auch für die Entschlüsselung den gleichen Code benutzt.
Function StrXor(Str: string; key: integer): string;
Diese Funktionen nutzt du dann ein deine Procedure. Denn so, wie du es zur Zeit machst, ist das Käse und in einem halben Jahr steigst du da selber nicht mehr durch. |
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
|
AW: Daten verschlüsselt speichern
Ich kann doch gar kein Perl ... 8-)
|
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Kommt bitte wieder zurück zum Thema, wenn es dazu noch was zu sagen gibt.
|
AW: Daten verschlüsselt speichern
Gibt es noch irgendwelche "Anfänger"-Verschlüsselungen außer XOR, die etwas schwieriger zu knacken sind?
|
AW: Daten verschlüsselt speichern
Nimm doch einfach was Fertiges und verschlüssle damit. Gibt genug Freeware-Komponenten zum Verschlüsseln.
|
AW: Daten verschlüsselt speichern
Zitat:
|
AW: Daten verschlüsselt speichern
Meine Meinung zur Verschlüsselung: entweder man macht es richtig oder sollte gar nicht erst anfangen. Nur ein bisschen verschlüsseln ist so wie ein bisschen schwanger sein. Xor ist etwas simples, für mich eher ein Sichtschutz als Verschlüsselung. Der Text wird unlesbar gemacht, nicht wirklich verschlüsselt. Somit stellt sich deine Frage eigentlich gar nicht richtig, denn entweder du nimmst die beste Verschlüsselung die es gibt oder es dir egal ob man es knacken kann. Somit gibt es eigentlich keine Verschlüsselungen für Anfänger. Denn das würde bedeuten: ich hab was dagegen, dass meine Verschlüsselung in 30 Minuten geknackt wird, aber da ich ein Anfänger bin und keinen unknackbaren Code nutzen kann, akzeptiere ich eine Anfänger-Verschlüsselung die man in 60 Minuten knacken kann.
Nur für die Vollständigkeit, noch simpler als oben ist wohl ROT13 |
AW: Daten verschlüsselt speichern
Zitat:
Wie groß ist der Aufwand etwas zu knacken und wer hat Interesse daran. eine XOR Geschichte reicht für den Gesetzgeber und für Endanwender eine XOR+Lauflänge für Anfänger eine ![]() bei einem Tabellentauscher wird es schon schwieriger... und eine Kombination von dem ein oder anderen macht es wahrscheinlich für die hälfte aller Programmierer schon zu schwierig... vorausgesetzt der Programmcode ist nicht zu einfach in der Exe enthalten... (Antidebug hack usw.) Wenn Du dann noch die Verschlüsselung bei jedem Programmstart änderst oder Zeitabhängig machst... Ist der Aufwand schon fast so groß, dass du eine AES oder Vergleichbares nehmen kannst... Mavarik |
AW: Daten verschlüsselt speichern
Zitat:
Simples Beispiel: Datenfelder per Offset Tabelle in unterschiedlicher Reihenfolge in einem Stream speichern den als gepackten Stream mit einen Tabellentauscher / XOR + Lauflänge... Und nach jedem Start wechsle ich die Tausch-Tabellen und die Offset-Tabelle... Das will ich in 60 Min sehen... (ohne den Programmcode zu debuggen) Mavarik |
AW: Daten verschlüsselt speichern
Zitat:
hier wird der Inhalt von s doch erst in der DB gespeichert, und dann verschlüsselt oder nicht? Gruß K-H |
AW: Daten verschlüsselt speichern
Logisch: Nach poschd isch de Käs gesse :)
Eins dieser typischen Copy&Paste-Beispiele, ohne zu wissen, was der Code tatsächlich macht? Bleibt mir bloß mit euren Grundlagen weg, das hab ich nicht nötig! |
AW: Daten verschlüsselt speichern
XOR ist keine Verschlüsselung, sondern eine Krankheit. Knackbar in 0.1 sec.
|
AW: Daten verschlüsselt speichern
Nein, ist es nicht. XOR ist mindestens genauso sicher, wie jede andere Verschlüsselung.
Ordentlich implementiert ist es eine der sichersten Verschlüsselungen überhaupt und alles Andere kann maximal noch genauso gut, aber nicht besser sein. Mit einem guten OTP verschlüsselt, welcher mindestens genauso lang ist, wie die zu verschlüsselnden Daten, ist es praktisch zu 100% unknackbar. |
AW: Daten verschlüsselt speichern
Zitat:
XOR ließe sich völlig unproblematisch durch eine byteweise Addition modulo 256 ersetzen, das ist bloß nicht so effizient in Hardware umzusetzen*. Zitat:
* Mit Vorsicht genieße, könnte mich auch irren :mrgreen: |
AW: Daten verschlüsselt speichern
Was ist OTP?
|
AW: Daten verschlüsselt speichern
![]() Wußte ich bis eben auch nicht, aber keine 5 Sekunden später hat's mir Wikipedia erzählt :-D |
AW: Daten verschlüsselt speichern
One-Time-Pad (Einmalverschlüsselung)
Praktisch eine große Passwortdatei, bzw. ein großer Schlüssel, für die Verschlüsselung, der auch nur ein einziges mal verwendet werden darf. Jedes Byte der Daten wird mit einem eigenen Byte des Schlüssels verschlüsselt. Da keiner die einzelnen Bytes kennt, kann man auch nicht die Daten entschlüsseln. Jedes Bit ist möglichst zufällig, keine Bits/Bytes lassen sich aus Anderen berechnen und man kann keine Zusammenhänge, Muster oder sonstwas zwischen einzelnen Bytes erkennen (gibt ja auch Keine). |
AW: Daten verschlüsselt speichern
Wie stark ich verschlüsseln will/muss hängt doch immer davon ab, vor wem ich den Dateninhalt verbergen will.
Will ich den Inhalt eines Zimmers vor meinen Kindern schützen, brauche ich keine Panzertür. Will ich mich aber gegen professionelle Einbrecher schützen, reicht eine Zimmertür sicherlich nicht aus. |
AW: Daten verschlüsselt speichern
Kann man doch alles machen :)
z.B. einfach immer nur das 1. Bit drehen (XOR) oder vielleicht das 6. Bit ($20 ... das ergibt ein echt geiles Verschlüsselungsergebnis :lol:) oder jedes Byte mit dem Ergebnis des Bytes davor verXORen oder das kombinieren und noch paar Bits verschiben, bissl multiplizieren, dividieren, addieren usw. und schon wird aus dem XOR ein Cäsar, Enigma, AES, RSA, RC4, Rot13 oder sonstwas. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:35 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