Beim Verschlüsseln und Entschlüsseln mit AES wird System.Byte[] zurückgegeben.C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Beim Verschlüsseln und Entschlüsseln mit AES wird System.Byte[] zurückgegeben.

Post by Anonymous »

Mit AES in C# habe ich zwei statische Methoden zur Verschlüsselung und Entschlüsselung geschrieben.
Verschlüsseln:

Code: Select all

static byte[] Encrypt(byte[] plaintext, byte[] Key, byte[] IV)
{
byte[] encrypted_data = null;
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Key;
aesAlg.IV = IV;

ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

using (MemoryStream msEncrypt = new MemoryStream())
{
using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write))
{
using (StreamWriter swEncrypt = new StreamWriter(csEncrypt))
{
swEncrypt.Write(plaintext);
}
}
encrypted_data = msEncrypt.ToArray();
}
}
return encrypted_data;
}
Entschlüsseln:

Code: Select all

static string Decrypt(byte[] encrypted_text, byte[] Key, byte[] IV)
{
string decrypted_data = null;
using (Aes aesAlg = Aes.Create())
{
aesAlg.Key = Key;
aesAlg.IV = IV;

ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

using (MemoryStream msDecrypt = new MemoryStream(encrypted_text))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
decrypted_data = srDecrypt.ReadToEnd();
return decrypted_data;
}
}
}
}
}

Code: Select all

static void Main(string[] args)
{
byte[] Key = GenerateRandomKey(32);
byte[] IV = GenerateRandomIV(16);
byte[] data_to_encrypt = Encoding.UTF8.GetBytes("Hola como estas");
byte[] encrypted_data = Encrypt(data_to_encrypt, Key, IV);
File.WriteAllBytes("encrypted.enc", encrypted_data);
byte[] data_to_decrypt = File.ReadAllBytes("encrypted.enc");
string decrypted_data = Decrypt(data_to_decrypt, Key, IV);
Console.WriteLine(decrypted_data);
}
Ich verwende sie in Main(), wo ich einen zufälligen 256-Bit-Schlüssel und einen IV von 128 generiere. Ich erhalte die Bytes der Zeichenfolge, die ich verschlüsseln möchte, und verwende die Funktion, um sie zu verschlüsseln. Dann schreibe ich sie in eine Datei und lese sie erneut, um sie zu entschlüsseln. Beim Versuch, sie in der Konsole anzuzeigen, wird jedoch nur der Typ „System.Byte[]“ angezeigt.
Warum passiert das? anstatt die entschlüsselte Datenzeichenfolge anzuzeigen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post