Шифр Цезаря: чтобы было еще ключевое слово и возможность дешифрования - C#
Формулировка задачи:
Здравствуйте уважаемые.
Написал прогу реализующую шифр Цезаря со смешением. Все работает.
Помогите пожалуйста переделать ее так, чтобы было еще ключевое слово и возможность дешифрования.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace cezar
{
class Program
{
static void Main(string[] args)
{
int n = 1, key = 1;
//количество сдвигов
Console.WriteLine("Введите слово,которое нужно зашифровать:");
string s = Console.ReadLine();//храню слово, которое будем шифровать
Console.WriteLine("Введите ключ:");
key = Convert.ToInt32(Console.ReadLine());
string s1 = "";//храню результат шифрования
//string alf = "abcdefghijklmnopqrstuvwxyz";//работаю с английским алфавитом
string alfphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";//работаю с русским алфавитом
int m = alfphabet.Length; //количество знаков в алфавите
for (int i = 0; i < s.Length; i++)//цикл перебора букв шифруемого слова
{
for (int j = 0; j < alfphabet.Length; j++)//цикл сравнения каждой бкувы с алфавитом
{
if (s[i] == alfphabet[j]) // в случае совпадения создаем темп, где храню номер буквы со сдвигом
{
int temp = j * n + key;//номер буквы+сдвиг в темп
while (temp >= m)//чтобы темп не уходил за рамки алфавита
temp -= m;
s1 = s1 + alfphabet[temp];//заношу зашифрованную букву в переменную для ее хранения
}
}
}
Console.WriteLine("Зашифрованное слово:" + s1);
Console.ReadLine();
}
}
}
Ну хоть кто нибудь...
Решение задачи: «Шифр Цезаря: чтобы было еще ключевое слово и возможность дешифрования»
textual
Листинг программы
ch = ch + 1 //ch = 1072 + 1 = 1073 = б