C# Aes Verschlüsselung

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Dodo.

    C# Aes Verschlüsselung

    Moin,

    Ich versuche gerade einen String mit per Aes zu verschlüsseln:


    VB.NET-Quellcode

    1. public string Cryption(string text)
    2. {
    3. string password = "ihwand";
    4. AesManaged oAesProvider = new AesManaged();
    5. byte[] btClear = null;
    6. // Das 'Salz' wird verwendet um das Passwort zu 'würzen'. Es müssen
    7. // hier mindestens 8 Bytes angegeben werden die einen zusätzlich
    8. // Parameter zur Berechnung des Schlüssels darstellen. Nur wer das
    9. // richtige Passwort und das verwendete Salz kennt, kann die Daten
    10. // entschlüsseln.
    11. byte[] btSalt = new byte[] {
    12. 1,
    13. 2,
    14. 3,
    15. 4,
    16. 5,
    17. 6,
    18. 7,
    19. 8
    20. };
    21. Rfc2898DeriveBytes oKeyGenerator = new Rfc2898DeriveBytes(password, btSalt);
    22. oAesProvider.Key = oKeyGenerator.GetBytes(oAesProvider.Key.Length);
    23. oAesProvider.IV = oKeyGenerator.GetBytes(oAesProvider.IV.Length);
    24. System.IO.MemoryStream ms = new System.IO.MemoryStream();
    25. CryptoStream cs = new CryptoStream(ms, oAesProvider.CreateEncryptor(), CryptoStreamMode.Write);
    26. btClear = System.Text.Encoding.UTF8.GetBytes(text);
    27. cs.Write(btClear, 0, btClear.Length);
    28. cs.Close();
    29. return Convert.ToBase64String(ms.ToArray());
    30. }
    31. public string Decryption(string text)
    32. {
    33. string password = "ihwand";
    34. AesManaged oAesProvider = new AesManaged();
    35. byte[] btCipher = null;
    36. byte[] btSalt = new byte[] {
    37. 1,
    38. 2,
    39. 3,
    40. 4,
    41. 5,
    42. 6,
    43. 7,
    44. 8
    45. };
    46. Rfc2898DeriveBytes oKeyGenerator = new Rfc2898DeriveBytes(password, btSalt);
    47. oAesProvider.Key = oKeyGenerator.GetBytes(oAesProvider.Key.Length);
    48. oAesProvider.IV = oKeyGenerator.GetBytes(oAesProvider.IV.Length);
    49. System.IO.MemoryStream ms = new System.IO.MemoryStream();
    50. CryptoStream cs = new CryptoStream(ms, oAesProvider.CreateDecryptor(), CryptoStreamMode.Write);
    51. try
    52. {
    53. btCipher = Convert.FromBase64String(text);
    54. cs.Write(btCipher, 0, btCipher.Length);
    55. cs.Close();
    56. return System.Text.Encoding.UTF8.GetString(ms.ToArray());
    57. }
    58. catch(Exception ex)
    59. {
    60. MessageBox.Show(ex.Message);
    61. return "null";
    62. }
    63. }
    64. }


    Bekomme aber immer 'Ungültiges Zeichen in Base64String', das komische ist, in VB funktionierts :o. Wo liegt mein Fehler?



    Grüße
    MessageBox.Show(ex.Message); ^^

    Hier kommt der Fehler: btCipher = Convert.FromBase64String(text);

    Grüße


    //Edit lag am Input, wie peinlich ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ThuCommix“ ()