Шифр Цезаря: организовать выдачу полного перебора - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д