Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - Dataset.writexml() => verschlüsselt speichern
theend - Mo 28.01.08 21:55
Titel: Dataset.writexml() => verschlüsselt speichern
hy,
Ich habe Daten in einem DataSet welche ich nach dem beenden der Application mittels
C#-Quelltext
1:
| Dataset.Writexml(filename); |
speichere
nun möchte ich aber das diese daten verschlüsselt gespeichert werden.
das selbe dan beim wieder laden am start entschlüselt werden.
Die Daten sollen auf der Festplatte (also als files) immer verschlüsselt gespeichert sein.
gibt es hier eine möglichkeit?
JüTho - Di 29.01.08 11:30
Titel: Re: Dataset.writexml() => verschlüsselt speichern
theend hat folgendes geschrieben: |
Die Daten sollen auf der Festplatte (also als files) immer verschlüsselt gespeichert sein.
gibt es hier eine möglichkeit? |
Ja. Folgende Schritte musst Du gehen:
- DataSet.GetXml-Methode liefert den xml-Inhalt als String.
- Dieser String wird verschlüsselt; Rückgabe ist wieder ein String.
- Der so erzeugte String wird als einfache Textdatei gespeichert, z.B. mit File.WriteAllText().
Zur
Verschlüsselung bietet NET viele verschiedene Möglichkeiten. Ich habe vor vielen Jahren aus einem Delphi-Lehrbuch folgendes Verfahren abgeleitet, das identisch zum Verschlüsseln und zum Entschlüsseln geeignet ist:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private static string CodingBytes(System.String source) { byte[] ajTemp = new byte[source.Length]; ajTemp = System.Text.Encoding.GetEncoding(1252).GetBytes(source); for( int x1=0; x1 < ajTemp.Length; x1++ ) ajTemp[x1] = (byte)(ajTemp[x1] ^ ((x1 % 9)*3+5) ); return System.Text.Encoding.GetEncoding(1252).GetString(ajTemp); } |
Das Einlesen geht im Prinzip genauso. Allerdings gibt es kein Gegenstück zu GetXml. Stattdessen musst den entschlüsselten String als
Stream an die
ReadXml-Methode übergeben.
Gruß Jürgen
Kha - Di 29.01.08 12:08
Wenn es nur ums temporäre Speichern geht, würde ich kein XML benutzen.
- Datei per FileStream öffnen
- Daraus einen CryptoStream mit Rijndael/whatever erstellen
- Das DataSet per BinaryFormatter in den CryptoStream serialisieren
- fertig
theend - Di 29.01.08 14:45
Khabarakh hat folgendes geschrieben: |
Wenn es nur ums temporäre Speichern geht, würde ich kein XML benutzen.
- Datei per FileStream öffnen
- Daraus einen CryptoStream mit Rijndael/whatever erstellen
- Das DataSet per BinaryFormatter in den CryptoStream serialisieren
- fertig
|
ich habe zwei arten von Daten die gespeichert werden sollen, einmal programmdaten die vom user geändert werden können (liste mit verschiedenen inhalten die im porgram verarbeitet werden, dazu gibt es im Porgramm auch die möglichkeit) diese werden unverschlüsselt gespeichert.
und dan gibt es noch die sachen die cih nur verschlüsselt speichern will, hierbei geht es um Programmeinstellungen und Userdaten, die nur mit diesem Programm genutzt werden dürfen und sollen.
Ich werde mal die beiden MEthoden versuchen, danke recht herzlich für die tips
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!