Moin,
Ich versuche gerade einen String mit per Aes zu verschlüsseln:
Bekomme aber immer 'Ungültiges Zeichen in Base64String', das komische ist, in VB funktionierts :o. Wo liegt mein Fehler?
Grüße
Ich versuche gerade einen String mit per Aes zu verschlüsseln:
VB.NET-Quellcode
- public string Cryption(string text)
- {
- string password = "ihwand";
- AesManaged oAesProvider = new AesManaged();
- byte[] btClear = null;
- // Das 'Salz' wird verwendet um das Passwort zu 'würzen'. Es müssen
- // hier mindestens 8 Bytes angegeben werden die einen zusätzlich
- // Parameter zur Berechnung des Schlüssels darstellen. Nur wer das
- // richtige Passwort und das verwendete Salz kennt, kann die Daten
- // entschlüsseln.
- byte[] btSalt = new byte[] {
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8
- };
- Rfc2898DeriveBytes oKeyGenerator = new Rfc2898DeriveBytes(password, btSalt);
- oAesProvider.Key = oKeyGenerator.GetBytes(oAesProvider.Key.Length);
- oAesProvider.IV = oKeyGenerator.GetBytes(oAesProvider.IV.Length);
- System.IO.MemoryStream ms = new System.IO.MemoryStream();
- CryptoStream cs = new CryptoStream(ms, oAesProvider.CreateEncryptor(), CryptoStreamMode.Write);
- btClear = System.Text.Encoding.UTF8.GetBytes(text);
- cs.Write(btClear, 0, btClear.Length);
- cs.Close();
- return Convert.ToBase64String(ms.ToArray());
- }
- public string Decryption(string text)
- {
- string password = "ihwand";
- AesManaged oAesProvider = new AesManaged();
- byte[] btCipher = null;
- byte[] btSalt = new byte[] {
- 1,
- 2,
- 3,
- 4,
- 5,
- 6,
- 7,
- 8
- };
- Rfc2898DeriveBytes oKeyGenerator = new Rfc2898DeriveBytes(password, btSalt);
- oAesProvider.Key = oKeyGenerator.GetBytes(oAesProvider.Key.Length);
- oAesProvider.IV = oKeyGenerator.GetBytes(oAesProvider.IV.Length);
- System.IO.MemoryStream ms = new System.IO.MemoryStream();
- CryptoStream cs = new CryptoStream(ms, oAesProvider.CreateDecryptor(), CryptoStreamMode.Write);
- try
- {
- btCipher = Convert.FromBase64String(text);
- cs.Write(btCipher, 0, btCipher.Length);
- cs.Close();
- return System.Text.Encoding.UTF8.GetString(ms.ToArray());
- }
- catch(Exception ex)
- {
- MessageBox.Show(ex.Message);
- return "null";
- }
- }
- }
Bekomme aber immer 'Ungültiges Zeichen in Base64String', das komische ist, in VB funktionierts :o. Wo liegt mein Fehler?
Grüße