Шифр Цезаря: организовать выдачу полного перебора - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, имеется код Шифра Цезаря с ключом, подскажите,как организовать выдачу полного перебора, т.е. чтобы не было ключа и показывало каждый вариант сдвига.
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace cezar
  6. {
  7. class Program
  8. {
  9. static void Main(string[] args)
  10. {
  11. int n = 1, key = 1;
  12.  
  13. Console.WriteLine("Введите слово,которое нужно зашифровать:");
  14. string s = Console.ReadLine();
  15. Console.WriteLine("Введите ключ:");
  16. key = Convert.ToInt32(Console.ReadLine());
  17. string s1 = "";
  18.  
  19. string alfphabet = "АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЬЪЭЮЯ";
  20. int m = alfphabet.Length;
  21. for (int i = 0; i < s.Length; i++)
  22. {
  23. for (int j = 0; j < alfphabet.Length; j++)
  24. {
  25. if (s[i] == alfphabet[j])
  26. {
  27. int temp = j * n + key;
  28. while (temp >= m)
  29. temp -= m;
  30. s1 = s1 + alfphabet[temp];
  31. }
  32. }
  33. }
  34. Console.WriteLine("Зашифрованное слово:" + s1);
  35. Console.ReadLine();
  36. }
  37. }
  38. }
Уже не нужно.

Решение задачи: «Шифр Цезаря: организовать выдачу полного перебора»

textual
Листинг программы
  1.     class CaesarCipher
  2.         {
  3.             public static string Alphabet { get; set; }
  4.             public static int Shift { private get; set; }
  5.             public static string Encryption(string text )
  6.             {
  7.                 text = text.ToLower();
  8.                 var res = new StringBuilder();
  9.                 for (int i = 0; i < text.Length; i++)
  10.                     for (int j = 0; j < Alphabet.Length; j++)
  11.                         if (text[i] == Alphabet[j]) res.Append(Alphabet[(j + Shift) % Alphabet.Length]);
  12.  
  13.                 return res.ToString();
  14.             }
  15.             public static string Decryption(string crypt)
  16.             {
  17.                 crypt = crypt.ToLower();
  18.                 var res = new StringBuilder();
  19.                 for (int i = 0; i < crypt.Length; i++)
  20.                     for (int j = 0; j < Alphabet.Length; j++)
  21.                         if (crypt[i] == Alphabet[j]) res.Append(Alphabet[(j - Shift + Alphabet.Length) % Alphabet.Length]);
  22.  
  23.                 return res.ToString();
  24.             }
  25.         }
  26.         static void Main(string[] args)
  27.         {
  28.             CaesarCipher.Alphabet = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
  29.             CaesarCipher.Shift = 3;
  30.             string text = "текст";
  31.             Console.WriteLine("Текст {0}", text);
  32.             string crypt = CaesarCipher.Decryption(text);
  33.             Console.WriteLine("Шифруем текст: {0}", crypt);
  34.             text = " ";
  35.             text = CaesarCipher.Encryption(crypt);
  36.             Console.WriteLine("Дешифруем текст: {0}", text);
  37.  
  38.             CaesarCipher.Alphabet = "abcdefghijklmnopqrstuvwxyz";
  39.             text = "tekst";
  40.             Console.WriteLine("Текст {0}", text);
  41.             crypt = CaesarCipher.Decryption(text);
  42.             Console.WriteLine("Шифруем текст: {0}", crypt);
  43.             text = " ";
  44.             text = CaesarCipher.Encryption(crypt);
  45.             Console.WriteLine("Дешифруем текст: {0}", text);
  46.             Console.ReadKey();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут