Нужна помощь в реализации шифрования методом Плейфера - C#
Формулировка задачи:
Подскажите как написать программу на C# методом Плейфера?
Правило:
1. если символы находятся в одной строке, то каждый из символов пары заменяется на стоящий правее его (за последним символом в строке следует первый символ той же строки);
2. если символы находятся в одном столбце, то каждый символ пары заменяется на символ, расположенный ниже его в столбце (за последним нижним символом следует верхний символ в том же столбце);
3. если символы пары находятся в разных строках и столбцах, то они считаются противоположными углами прямоугольника. Символ, находящийся в левом углу, заменяется на символ, стоящий в другом левом углу; замена символа, находящегося в правом углу, осуществляется аналогично;
4. если в открытом тексте встречаются два одинаковых символа подряд, то перед шифрованием между ними вставляется специальный символ (например, тире).
Разработайте программу, выполняющую шифрование и расшифрование данных методом Плейфера. Программа должна выполнять шифрование данных (текстовых) вводимых пользователем.
Решение задачи: «Нужна помощь в реализации шифрования методом Плейфера»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class PlayFair { static void Main(string[] args) { try { PlayFairSettings ps = new PlayFairRu56(); PlayFair pf = new PlayFair(ps, "Шифр Плейфера"); Console.WriteLine(pf); string Text = "Текст который нужно зашифровать шифром Плейферах"; Console.WriteLine("Исходный текст\r\n" + Text); int i = 0; foreach (char c in pf.Bigrams(Text)) { Console.Write(c); i++; if (i % 2 == 0) Console.Write(' '); if (i % 10 == 0) Console.WriteLine(); } Text = pf.Crypt(Text, true); Console.WriteLine("\r\nЗашифрованный текст\r\n" + Text); Text = pf.Crypt(Text, false); Console.WriteLine("\r\nРасшифрованный текст\r\n" + Text); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.ReadLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д