Hi Leute,
ich möchte jetzt eine TextBox ableiten. Okay, kein Problem, werden viele jetzt sagen. Aber: die TextBox soll später an ein DataSet gebunden werden, welches verschlüsselte Daten liefert. Diese Daten sollen mittels eines Key vor (!) dem Anzeigen entschlüsselt werden. Änderungen in der Textbox sollen vor (!) der Übergabe der Daten wieder mit dem Key verschlüsselt werden.
Das Entschlüsseln ist kein Problem gewesen. Das hab ich im Setter der überladenen TextBox machen können:
set
{
MyCrypt.MyCryptEngine tEngine = new MyCrypt.MyCryptEngine(MyCrypt.Algorithm.TripleDES);
tEngine.Key = Encoding.ASCII.GetString(Convert.FromBase64String(mKey));
string tVal = Encoding.ASCII.GetString(Convert.FromBase64String(value));
base.Text = tEngine.Decrypt(tVal);
}
Aber wie und wo und wann mach ich das Verschlüsseln der Daten? Im Getter scheint das aus irgendwelchen unerfindlichen Gründen nicht zu funktionieren...
Danke
Gruß, Hendrik
Keiner 'ne Idee?
Ich möchte "nur" eine Textbox, die automatisch verschlüsselte Daten aus der Datenbindung entschlüsselt ausgibt und Klartext-Eingaben vor Eintragung in die Datenbindung verschlüsselt. Das kann so schwer doch nicht sein, oder? 8o 🤔
Grüße,
Hendrik
Du Reagierts auf Text changed
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Da ist das Problem, daß sowohl die Änderung aus der Datenbank, als auch die Änderung des Benutzers das Text Changed Event auslösen. Somit wird sowohl die Änderung des Benutzers verschlüsselt in die Datenbank geschrieben, als auch die schon verschlüsselten Daten der DB erneut verschlüsselt.
ok dann einfach über das Text Property und Textchanged nur muss er vorher prüfen ob verschlüsselt ist oder nicht
Wir Arbeiten eigendlich nicht wir nehmen nur das geld
Original von S.H.-Teichhof
ok dann einfach über das Text Property und Textchanged nur muss er vorher prüfen ob verschlüsselt ist oder nicht
Wie soll er das überprüfen vorher? Es ist beides Klartext. Der einzige Unterschied ist, die Daten aus der DB sind BASE64 encodiert.
Für doch ein neues Property in die TextBox ein, EnCryptedText.
daran kannst Du dann binden, lesen und schreiben einfach implementieren.
Hmm... das wäre eine interessante Möglichkeit. Jemand eventuell noch 'n Codeschnipsel dazu? Wie man Properties schreibt, weiß ich aber... 🙂
Aber was?
In den Getter und Setter einfach deinen Ver/Entschlüsselungscode und gut.
Original von FZelle
Aber was?
Öh, nüx... da hast du was falsch gelesen. Umgestellt sollte der Satz heißen "Ich weiß aber, wie man Properties schreibt". 🙂 Bissl kryptisch formuliert, geb ich zu.
Ja... mal sehen, das muss ich mal ausprobieren. Ich meine, ich hab das schon versucht, irgendwie.
Eigenartigerweise scheint die Textbox aber nicht "Text" der aktuellen Klasse anzuzeigen, sondern grundsätzlich base.Text, was dazu führt, daß ich base.Text auch in der Ver-/Entschlüsselungsproperty verwenden müsste. Das hätte wiederum den Effekt, daß es egal ist, ob ich die Ver-/Entschlüsselung in "Text" oder in "EncryptetText" mach. Es führt in beiden Fällen dazu, daß der Inhalt der DB mehrfach oder falsch verschlüsselt wird.
Naja, mit deinem Extra Property kannst Du ja dann schonmal testen, ob sich überhaupt etwas geändert hat,
so das Du dann garnichts ändern musst.
Hallo 7.e.Q,
hast du vielleicht new statt override für die Text-Property benutzt? Ansonsten sehe ich es wie die anderen. Es sollte keine Problem sein, was du willst. Ohne den Code ist schwer zu sehen, warum es nicht läuft.
herbivore
Nee, war schon override. Ich muss nachher mal den Code rauskramen, komm da gerade nicht dran von hier aus. Melde mich nachher wieder.