Проблема с шифрованием и расшифровкой данных с помощью AES в C# возвращает System.Byte[]C#

Место общения программистов C#
Ответить
Anonymous
 Проблема с шифрованием и расшифровкой данных с помощью AES в C# возвращает System.Byte[]

Сообщение Anonymous »

Я провожу небольшой тест с использованием AES на C#, я написал два статических метода для шифрования и дешифрования.
Шифрование:

Код: Выделить всё

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;
}
Расшифровка:

Код: Выделить всё

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;
}
}
}
}
}

Код: Выделить всё

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);
}
Затем я использую их в основной функции программы, где генерирую случайный 256-битный ключ и IV, равный 128. Я получаю байты строки, которую хочу зашифровать, и использую функцию для их шифрования, затем записываю их в файл и читаю снова, чтобы расшифровать, но при попытке отобразить их в выводе консоли отображается только тип «System.Byte[]».
Может кто-нибудь объяснит мне, почему это происходит и не показывает расшифрованную строку данных?

Подробнее здесь: https://stackoverflow.com/questions/797 ... ystem-byte
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»