public void InitializeCiphers(string key) { this.Encryptor = new RC4(key); this.Decryptor = new RC4(key); for (var k = 0; k < key.Length; k++) { this.Encryptor.PRGA(); this.Decryptor.PRGA(); } }
private static void Encrypt() { string inputText; string outputText = null; string key; // Открываем файл InputText.txt // Если такого нет, вводим текст с клавиатуры и сохраняем в данный файл using (var inputFile = new FileStream("InputText.txt", FileMode.OpenOrCreate)) { // Если открытый файл пустой if (inputFile.Length == 0) { // Вводим текст с клавиатуры Console.WriteLine("Enter text"); inputText = Console.ReadLine(); var array = Encoding.Default.GetBytes(inputText); inputFile.Write(array, 0, array.Length); } else { // Считываем текст с клавиатуры var array = new byte[inputFile.Length]; inputFile.Read(array, 0, array.Length); inputText = Encoding.Default.GetString(array); } } // Вводим ключ, удаляем в нем пробелы Console.WriteLine("Enter key"); key = Console.ReadLine().Replace(" ", ""); // Экземпляр класса для шифрования RC4 encoder = new RC4(Encoding.Default.GetBytes(key)); outputText = Encoding.Default.GetString( encoder.Code( Encoding.Default.GetBytes(inputText))); Console.WriteLine(outputText); // Записываем зашифрованный текст в файл EnryptedText.txt using (FileStream outputFile = new FileStream("EnryptedText.txt", FileMode.Create)) //запись результата в файл { if (outputFile != null) { byte[] array = Encoding.Default.GetBytes(outputText); outputFile.Write(array, 0, array.Length); } } }
static void Main(string[] args) { byte[] key = ASCIIEncoding.ASCII.GetBytes("11121314151"); RC4 encoder = new RC4(key); string testString = "Plaintext"; byte[] testBytes = ASCIIEncoding.ASCII.GetBytes(testString); byte[] result = encoder.Encode(testBytes, testBytes.Length); RC4 decoder = new RC4(key); byte[] decryptedBytes = decoder.Decode(result, result.Length); string decryptedString = ASCIIEncoding.ASCII.GetString(decryptedBytes); Console.WriteLine(decryptedString); }
private static void Decrypt() { string inputText; string outputText = null; string key; // Открываем файл с зашифрованным текстом EnryptedText.txt using (FileStream inputFile = new FileStream("EnryptedText.txt", FileMode.OpenOrCreate)) { // Если файл пустой, то выводим сообщение об ошибке и завершаем программу if (inputFile.Length == 0) { Console.WriteLine("Error. File is empty."); return; } byte[] array = new byte[inputFile.Length]; inputFile.Read(array, 0, array.Length); inputText = System.Text.Encoding.Default.GetString(array); } // Вводим ключ и удаляем пробелы в нем Console.WriteLine("Enter key"); key = Console.ReadLine().Replace(" ", ""); // Экземпляр класса для дешифровки RC4 encoder = new RC4(Encoding.Default.GetBytes(key)); outputText = Encoding.Default.GetString( encoder.Code( Encoding.Default.GetBytes(inputText))); Console.WriteLine(outputText); // Запись результатов в файл DeryptedText.txt using (FileStream outputFile = new FileStream("DeryptedText.txt", FileMode.Create)) { byte[] array = System.Text.Encoding.Default.GetBytes(outputText); outputFile.Write(array, 0, array.Length); } }