Шифр Цезаря: организовать выдачу полного перебора - 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 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
Листинг программы
- class CaesarCipher
- {
- public static string Alphabet { get; set; }
- public static int Shift { private get; set; }
- public static string Encryption(string text )
- {
- text = text.ToLower();
- var res = new StringBuilder();
- for (int i = 0; i < text.Length; i++)
- for (int j = 0; j < Alphabet.Length; j++)
- if (text[i] == Alphabet[j]) res.Append(Alphabet[(j + Shift) % Alphabet.Length]);
- return res.ToString();
- }
- public static string Decryption(string crypt)
- {
- crypt = crypt.ToLower();
- var res = new StringBuilder();
- for (int i = 0; i < crypt.Length; i++)
- for (int j = 0; j < Alphabet.Length; j++)
- if (crypt[i] == Alphabet[j]) res.Append(Alphabet[(j - Shift + Alphabet.Length) % Alphabet.Length]);
- return res.ToString();
- }
- }
- static void Main(string[] args)
- {
- CaesarCipher.Alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
- CaesarCipher.Shift = 3;
- string text = "текст";
- Console.WriteLine("Текст {0}", text);
- string crypt = CaesarCipher.Decryption(text);
- Console.WriteLine("Шифруем текст: {0}", crypt);
- text = " ";
- text = CaesarCipher.Encryption(crypt);
- Console.WriteLine("Дешифруем текст: {0}", text);
- CaesarCipher.Alphabet = "abcdefghijklmnopqrstuvwxyz";
- text = "tekst";
- Console.WriteLine("Текст {0}", text);
- crypt = CaesarCipher.Decryption(text);
- Console.WriteLine("Шифруем текст: {0}", crypt);
- text = " ";
- text = CaesarCipher.Encryption(crypt);
- Console.WriteLine("Дешифруем текст: {0}", text);
- Console.ReadKey();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д