Hallo, ich wollte eine Objektstruktur serialisiert abspeichern und laden. Das hab ich bisher so gemacht:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| Data myData = new Data(); void Laden() { FileStream stream = File.Open("test.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite); XmlSerializer serializer = new XmlSerializer(typeof(Data)); myData = (Data)serializer.Deserialize(stream); stream.Close(); } void Speichern() { FileStream stream = File.Open("test.xml", FileMode.OpenOrCreate, FileAccess.ReadWrite); XmlSerializer serializer = new XmlSerializer(typeof(Data)); serializer.Serialize(stream, myData); stream.Close(); } |
Jetzt möchte ich das ganze aber noch verschlüsseln und hier weiß ich nicht weiter. Zum verschlüsseln benutze ich dieses hier:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| RijndaelManaged algorithm = new RijndaelManaged(); byte[] passwordBytes = Encoding.UTF8.GetBytes("Test"); byte[] saltBytes = Encoding.UTF8.GetBytes("Text"); PasswordDeriveBytes p = new PasswordDeriveBytes(passwordBytes, saltBytes); algorithm.IV = p.GetBytes(algorithm.BlockSize / 8); algorithm.Key = p.GetBytes(algorithm.KeySize / 8);
XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("test.xml"); Encrypt(xmlDoc, "Data", algorithm); Decrypt(xmlDoc, algorithm); |
Die Encrypt(Decrypt Methoden sind 1zu1 von hier übernommen:
msdn.microsoft.com/d...7w85t6(v=vs.80).aspx
Beides für sich funktioniert, doch ich frage mich jetzt, wie ich die beiden zusammenbasteln kann, da beide völlig verschiedene Klassen benutzen. (Encript braucht XmlDocument ich benutze aber einen stream) Ich könnte natürlich versuchen wie wirr alles in richtige Objekte umzuwandeln in der Hoffnung aus dem sream ein XmlDocument zu machen und vice versa. Ich denke aber da müsste es irgendeine simplere Möglichkeit geben.
Ich hoffe ihr könnt mir da weiterhelfen