Шифр цезаря и вижена С. Документ Microsoft Word. Программа шифрования кодом Цезаря
Скачать 17.15 Kb.
|
1 Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста. /*Программа шифрования кодом Цезаря*/ #include #include #include int main() { /*инициализируем переменные*/ int i=0, n=0, k; int d; char alf[] = "abcedfghijklmnopqrstuvwxyz0123456789#!@$%^&*-+=";//словарь char buf[10];//массив для ввода сообщения char decod[10];//массив для ввода сообщения /*вывод названия программы*/ printf("\nBorland C++ 3.1"); printf("\nProgramma shifrovanija kodom Tsezarja\n"); /*Процедура шифрования ввод*/ printf("\n***Shifrovanie***"); printf("\nVvedite slovo ili tsifrj :"); scanf("%s",&buf);//ввод слова или цифр printf("\nVvedite tzifrovoj cluch, (shag ot 1 do 10): "); scanf("%i",&k);//вводим ключ for (n=0; n < 10; n++) { for (i = 0; i < 47; i++) { if (buf[n] == alf[i]) { if (i >= 47) buf[n] = alf[i-47]; else buf[n] = alf[i+k];//сдвигаем вправо на показания шага ключа break;//принудительно выходим из цикла } } } printf("\nVash shefr= %s\n", buf);//выводим полученный шифр /*Процедура дешифрования ввод*/ printf("\n--Deshifrovanie---\n"); printf("\nVvedite vash shifr : "); scanf("%s",&decod);//вводим шифр printf("\nVvedite tzifrovoj cluch, (shag ot 1 do 10): "); scanf("%i",&d);//вводим ключ for (n=0; n < 10; n++) { for (i = 0; i < 47; i++) { if (decod[n] == alf[i]) { if (i >= 47) decod[n] = alf[i-47]; else decod[n] = alf[i-d];//сдвигаем влево на показания шага ключа break;//принудительно выходим из цикла } } } printf("\nShefr= "); puts (decod);//выводим код getch();//задержка программы return 0; }//конец 2 Процедур шифрования и расшифрования с использованием шифра Цезаря при вводе с клавиатуры ключа и текстового файла. Учтите регистр вводимого текста. using System; public class CaesarCipher { //символы русской азбуки const string alfabet = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"; private string CodeEncode(string text, int k) { //добавляем в алфавит маленькие буквы var fullAlfabet = alfabet + alfabet.ToLower(); var letterQty = fullAlfabet.Length; var retVal = ""; for (int i = 0; i < text.Length; i++) { var c = text[i]; var index = fullAlfabet.IndexOf(c); if (index < 0) { //если символ не найден, то добавляем его в неизменном виде retVal += c.ToString(); } else { var codeIndex = (letterQty + index + k) % letterQty; retVal += fullAlfabet[codeIndex]; } } return retVal; } //шифрование текста public string Encrypt(string plainMessage, int key) => CodeEncode(plainMessage, key); //дешифрование текста public string Decrypt(string encryptedMessage, int key) => CodeEncode(encryptedMessage, -key); } class Program { static void Main(string[] args) { var cipher = new CaesarCipher(); Console.Write("Введите текст: "); var message = Console.ReadLine(); Console.Write("Введите ключ: "); var secretKey = Convert.ToInt32(Console.ReadLine()); var encryptedText = cipher.Encrypt(message, secretKey); Console.WriteLine("Зашифрованное сообщение: {0}", encryptedText); Console.WriteLine("Расшифрованное сообщение: {0}", cipher.Decrypt(encryptedText, secretKey)); Console.ReadLine(); } } 3 Процедур шифрования и расшифрования с использованием шифра Вижинера при вводе с клавиатуры ключа и исходного или зашифрованного текста. Учтите регистр вводимого текста.
4 Процедур шифрования и расшифрования с использованием шифра Вижинера при вводе с клавиатуры ключа и текстового файла. Учтите регистр вводимого текста. 5 Постройте программно таблицу Вижинера и выведите в файл. |