Нужна помощь в реализации шифрования методом Плейфера - 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();
}
}
}