Hallo liebe Gemeinde,
ich habe da mal wieder ein Problem wo ich Eure Erfahrung und hilfe benötige.
ich verschlüssel einen String und möchte ihn später wieder auslesen und entschlüsseln.
Allerdings habe ich das Problem das ich beim Entschlüsseln "Bad Data" als Fehlermeldung bekomme.
Ich seh bestimmt den Wald vor lauter Bäumen nicht mehr:
Key settings
C#-Quelltext
1: 2:
| private readonly byte[] key = new byte[] { xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx, xx }; private readonly byte[] iv = new byte[] { xx, xx, xx, xx, xx, xx, xx, xx }; |
Verschlüsselung und schreiben in Registry:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| string input = "12345";
MemoryStream mstream = new MemoryStream(); CryptoStream cstream = new CryptoStream(mstream, new TripleDESCryptoServiceProvider().CreateEncryptor(this.key, this.iv), CryptoStreamMode.Write);
byte[] toEncrypt = new UnicodeEncoding().GetBytes(input); cstream.Write(toEncrypt, 0, toEncrypt.Length); cstream.FlushFinalBlock(); byte[] ret = mstream.ToArray(); cstream.Close(); mstream.Close();
RegistryKey wreg = Registry.CurrentUser.CreateSubKey("Software\\Test"); wreg.SetValue("testentry", ret); |
Auslesen und Entschlüsseln:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| RegistryKey regreader = Registry.CurrentUser.OpenSubKey("Software\\Test", true);
byte[] rread = (byte[])regreader.GetValue("testentry");
MemoryStream nmstream = new MemoryStream(); CryptoStream ncstream = new CryptoStream(nmstream, new TripleDESCryptoServiceProvider().CreateDecryptor(this.key, this.iv), CryptoStreamMode.Read); byte[] fromEncrypt = new byte[rread.Length];
ncstream.Read(fromEncrypt, 0, fromEncrypt.Length); string result = new UnicodeEncoding().GetString(fromEncrypt); |
Ich hoffe Ihr könnt mir folgend und auch einen Tipp geben.
Danke im Voraus und Gruß
Flo