Laden...

Verschlüsselnde TextBox

Erstellt von 7.e.Q vor 17 Jahren Letzter Beitrag vor 17 Jahren 3.433 Views
7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren
Verschlüsselnde TextBox

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

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

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

1.549 Beiträge seit 2004
vor 17 Jahren

Du Reagierts auf Text changed

Wir Arbeiten eigendlich nicht wir nehmen nur das geld

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

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.

1.549 Beiträge seit 2004
vor 17 Jahren

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

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

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
10.010 Beiträge seit 2004
vor 17 Jahren

Für doch ein neues Property in die TextBox ein, EnCryptedText.

daran kannst Du dann binden, lesen und schreiben einfach implementieren.

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

Hmm... das wäre eine interessante Möglichkeit. Jemand eventuell noch 'n Codeschnipsel dazu? Wie man Properties schreibt, weiß ich aber... 🙂

F
10.010 Beiträge seit 2004
vor 17 Jahren

Aber was?

In den Getter und Setter einfach deinen Ver/Entschlüsselungscode und gut.

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

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.

F
10.010 Beiträge seit 2004
vor 17 Jahren

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.

49.485 Beiträge seit 2005
vor 17 Jahren

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

7.e.Q Themenstarter:in
925 Beiträge seit 2004
vor 17 Jahren

Nee, war schon override. Ich muss nachher mal den Code rauskramen, komm da gerade nicht dran von hier aus. Melde mich nachher wieder.