Шифрование/дешифрование решеткой (метод Кардано) - C#

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

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

Подскажите пожалуйста, как сделать обратное действие (DeCrypt), расшифровать, т.е. собрать все 1 и выложить их в строку, должно получится слово привет! Это шифр Кардано, шифрование происходит за счет замены нужных букв(word) в "невинном тексте"(input). Нужные буквы 1, остальные 0. Берем первое вхождение строки word и пробегаемся по строке input до первого вхождения нужного элемента.
static void Main(string[] args)
        {
            string word = "привет";
            string input = "ПеРгамент клеопатры Из египта отраВлЕн Токсином!";
 
            Console.WriteLine("Шифруемое слово: " + word + "\n");
            Console.WriteLine("Криптограмма: " + input + "\n");
 
            input = input.ToLower();
            word = word.ToLower();
 
            Console.WriteLine("Ключ криптограммы: " +  Crypt(word,input));
           
            Console.ReadLine();
        }
 
        static string Crypt(string word, string input)
        {
            var sb = new StringBuilder();
            int i = 0, j = 0;
 
            for (; i < word.Length; i++)
            {
                for (; j < input.Length; j++)
                {
                    if (word[i] == input[j])
                    {
                        sb.Append("1");
                        j++;
                        break;
                    }
 
                    sb.Append("0");
                }
            }
            for (; j < input.Length; j++)
                sb.Append("0");
 
            return sb.ToString();
        }
 
 public static void DeCrypt()
        {
            // прямой обход решетки
            for (int i = 0; i < строка.Length; i++)
            {
                if (Convert.ToString(строка[i]) == "1")
                {
                    Console.Write(строка[i]);
                }
            }
            Console.WriteLine("");
        }

Решение задачи: «Шифрование/дешифрование решеткой (метод Кардано)»

textual
Листинг программы
        static void DeCrypt(string input, string key)
        {
            for (int i = 0; i < key.Length; i++)
            {
                if (Convert.ToString(key[i]) == "1")
                {
                    Console.Write(input[i]);
                }
            }
        }

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


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

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

6   голосов , оценка 3.667 из 5