.NET 4.x Чтение byte из файла (Программа шифрования и дешифрования AES-128) - C#
Формулировка задачи:
Добрый день, реализую программу шифрования и дешифрования И потом уже циклом записываю в массив 4х4:
Самая банальная идея в том, что бы так и записывать весь файл в массив
AES-128
Весь код уже прописан и всё работает в норме, но хотелось бы посоветоваться. Для начале небольшое лирическое вступление, дабы объяснить принцип шифрования. AES работает с массивами 4х4, в которые записаны байты из файла, который нужно зашифровать. Тоесть 16 Байт. На данном этапе я реализовал работу именно с файлом размером > или =16 Байт
Но хотелось бы всё же сделать, что бы шифрование осуществлялось с файлами любых размеров (ну в разумных пределах естественно) Сейчас считываю таким образом:byte[] BufferText = File.ReadAllBytes(@"C:\AES\Text.txt");
byte[,] massText = new byte[4, 4];
BufferText
и просто считывать сначала первые 16 байт, шифровать, записывать в массив с шифр-текстом, потом следующие и так далее. Но мне кажется если размеры будут большими это будет сильно подъедать память. Каким образом можно реализовать такое с наименьшими потерями?P.S. Если можно поподробнее, я в этом не АС.
Решение задачи: «.NET 4.x Чтение byte из файла (Программа шифрования и дешифрования AES-128)»
textual
Листинг программы
using System; using System.IO; public class ReadBuf { private const string FILE_NAME = "MyFile.txt"; public static void Main() { if (!File.Exists(FILE_NAME)) { Console.WriteLine("{0} does not exist.", FILE_NAME); return; } // читаем фаил в поток FileStream f = new FileStream(FILE_NAME, FileMode.Open, FileAccess.Read, FileShare.Read); // преобразуем поток в байты using (BinaryReader br = new BinaryReader(f)) { byte input; // читаем пока не наступит конец файла int i=0; while (br.PeekChar() > -1 ) { input = br.ReadByte(); i++; if(i%16==0 || br.PeekChar() == -1) { что то делаем } Console.WriteLine(input); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д