Hallo,
ich möchte ein String Array mittels Rijndael verschlüsseln, auf der Platte speichern und dann natürlich wieder entschlüsseln und die entschlüsselten strings im String-Array speichern.
Ich habe schon zig Codebeispiele durchgekaut, aber irgendwie wird immer nur ein Memorystream ver und entschlüsselt oder es wird nur ein einzelner String verschlüsselt, gespeichert, gelesen und wieder entschlüsselt. Ich möchte aber mehrere Strings in einer Datei speichern. Hier mal ein sehr vereinfachtes Beispiel, was ich meine:
Der Code funktioniert, aber ich weiss nicht wie ich die Datei entschlüsseln soll. Ich dachte mir das folgendermassen:
Hat jemand einen Ansatz für mich? Ich erwarte keine fertige Lösung, nur ein paar Tips. Vielleicht kann man es ja auch ganz anders machen ?
Danke schon mal.
ich möchte ein String Array mittels Rijndael verschlüsseln, auf der Platte speichern und dann natürlich wieder entschlüsseln und die entschlüsselten strings im String-Array speichern.
Ich habe schon zig Codebeispiele durchgekaut, aber irgendwie wird immer nur ein Memorystream ver und entschlüsselt oder es wird nur ein einzelner String verschlüsselt, gespeichert, gelesen und wieder entschlüsselt. Ich möchte aber mehrere Strings in einer Datei speichern. Hier mal ein sehr vereinfachtes Beispiel, was ich meine:
Code:
namespace Test { public partial class Form1 : Form { private string[] strArr = new string[100]; private byte[] TheKey = new byte[] { 0x49, 0x76, 0x61, 0x20, 0x4d, 0x65, 100, 0x76, 0x49, 0x76, 0x61, 0x20, 0x4d, 0x65, 100, 0x76, 0x49, 0x76, 0x61, 0x20, 0x4d, 0x65, 100, 0x76 }; private byte[] TheIV = new byte[] { 0x49, 0x76, 0x61, 0x20, 0x4d, 0x65, 100, 0x76, 0x49, 0x76, 0x61, 0x20, 0x4d, 0x65, 100, 0x76 }; public Form1() { InitializeComponent(); strArr[0] = "Text1"; strArr[1] = "Ein sehr sehr langer Text könnte hier stehen"; strArr[2] = ""; strArr[3] = "A"; // usw. } private void btn_Verschluesseln_Click(object sender, EventArgs e) { FileStream fs = null; CryptoStream cs = null; BinaryWriter bw = null; fs = File.Open("E:\\Temp\\Test.xxx", FileMode.Create); RijndaelManaged rij = new RijndaelManaged(); rij.Key = TheKey; rij.IV = TheIV; ICryptoTransform encryptor = rij.CreateEncryptor(rij.Key, rij.IV); cs = new CryptoStream(fs, encryptor, CryptoStreamMode.Write); bw = new BinaryWriter(cs); for (int i = 0; i < 4; i++) { bw.Write(strArr[i]); } } private void btn_Exit_Click(object sender, EventArgs e) { Application.Exit(); } } }
Code:
private void btn_Entschluesseln_Click(object sender, EventArgs e) { FileStream fs = null; CryptoStream cs = null; BinaryReader br = null; fs = File.Open("E:\\Temp\\Test.xxx", FileMode.Open, FileAccess.Read); RijndaelManaged rij = new RijndaelManaged(); rij.Key = TheKey; rij.IV = TheIV; ICryptoTransform decryptor = rij.CreateDecryptor(rij.Key, rij.IV); cs = new CryptoStream(fs, decryptor, CryptoStreamMode.Read); br = new BinaryReader(cs); byte[] buffer = new byte[100]; for (int i = 0; i < 4; i++) { //Wie lese ich die Strings und schreibe sie ins Array??? } }
Danke schon mal.
Comment