private static void Encrypt() { RSA encoder = new RSA(); // Открываем файл публичного ключа using (var publicKeyFile = new FileStream("PublicKey.txt", FileMode.Open)) { if (publicKeyFile == null) { Console.WriteLine("Ошибка. Файл ключа для шифрования не может быть открыт"); return; } byte[] key = new byte[publicKeyFile.Length]; publicKeyFile.Read(key, 0, key.Length); encoder.ExportPublicKey(Encoding.UTF8.GetString(key)); } byte[] inputText; byte[] inputTextCode; byte[] outputText = null; // Открываем файл InputText.txt // Если такого нет, вводим текст с клавиатуры и сохраняем в данный файл using (var inputFile = new FileStream("InputText.txt", FileMode.OpenOrCreate)) { // Если открытый файл пустой if (inputFile.Length == 0) { // Вводим текст с клавиатуры Console.WriteLine("Enter text"); inputText = Encoding.UTF8.GetBytes(Console.ReadLine().ToLower()); inputFile.Write(inputText, 0, inputText.Length); } else { // Считываем текст с файла var array = new byte[inputFile.Length]; inputFile.Read(array, 0, array.Length); inputText = Encoding.UTF8.GetBytes(Encoding.UTF8.GetString(array).ToLower()); } } inputTextCode = new byte[inputText.Length]; for (int i = 0; i < inputTextCode.Length; i++) { inputTextCode[i] = alphabet[Convert.ToChar(inputText[i])]; } outputText = encoder.Encrypt(inputTextCode); // Записываем зашифрованный текст в файл EnryptedText.txt using (FileStream outputFile = new FileStream("EnryptedText.txt", FileMode.Create)) { if (outputFile != null) { outputFile.Write(outputText, 0, outputText.Length); } } Console.WriteLine("Данные успешно зашифрованы\n" + Encoding.UTF8.GetString(outputText)); }