Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.11.2014, 16:43   #1
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию Поиск символа в массиве

Код:
   private static int smesh = (int)'a';//смещение алфавита относительно a
        private static int alphLength = 26;
        static char[] ExceptSymbols = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
        public static string Encrypt(String text, String key)
        {
            StringBuilder ans = new StringBuilder();
            for (int i = 0; i < text.Length; i++)
            {

            if (!ExceptSymbols.Contains(text[i]))
                {
                    ans.Append(text[i]);
                }
            else if (!ExceptSymbols.Contains(key[i % key.Length])) //если символа нет в массиве ExceptSymbols выводим исходный текст
                {
                    ans.Append(text[i]);//исходный текст
                }

            else
                {
                    int num = (text[i] + key[i % key.Length] - 2 * smesh) % alphLength;
                    //в num лежит номер буквы в алфавите
                    char simvol = (char)(num + smesh);//получаем нужный символ
                    ans.Append(simvol);
                }

            }
            return ans.ToString();
        }
Есть кусок кода шифрование по таблице Виженера. Как сделать, что-бы в помеченном месте (//исходный текст) он не выводил исходный текст. Например ключ будет ???w* нужно что-бы он зашифровал все по w, пропустив символы
Maks3 вне форума Ответить с цитированием
Старый 25.11.2014, 16:58   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

То есть если правильно понял.
Текст будет: e5e64fwww8989*????
Текст после шифрования: e5e64f[шифрованная w][шифрованная w][шифрованная w]8989*????

Последний раз редактировалось coNsept; 25.11.2014 в 17:07.
coNsept вне форума Ответить с цитированием
Старый 25.11.2014, 17:01   #3
Maks3
Пользователь
 
Регистрация: 23.11.2014
Сообщений: 28
По умолчанию

Цитата:
Сообщение от coNsept Посмотреть сообщение
То есть если правильно понял.
Текст будет: e5e64fwww8989*????
Текст после шифрования: e5e64f[шифрованная w][шифрованная w][шифрованная w]8989*????
текст : abc
ключ: !@#$b&(=
Результат: bcd то есть он пропустил все символы в ключи кроме b и зашифровал текст по b

текст : abcd
ключ: ***b**c**
Результат: bddf пропускает все символы до буквы b шифрует по нему букву a, потом дальше пропускает символы до буквы с, шифрует по ней b и тд

Последний раз редактировалось Maks3; 25.11.2014 в 17:21.
Maks3 вне форума Ответить с цитированием
Старый 25.11.2014, 17:37   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Код:
   const string key = "!@t#$b&(=";
   const string text = "not encrypted text";
   const string alphabet = "abcdefghklmnopqrst";

   var stringBuilder = new StringBuilder(text);

   var intersection = alphabet.Intersect(key).ToArray();

   for (var index = 0; index < text.Length; index++)
   {
    stringBuilder[index] = index < intersection.Length ? intersection[index] : intersection[intersection.Length - 1];
   }

Последний раз редактировалось coNsept; 25.11.2014 в 18:30.
coNsept вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализовать два метода поиска строк в массиве: поиск перебором, бинарный поиск на языке Pascal DimzNOVIchok45 Помощь студентам 7 19.09.2014 21:40
Найти ячейку в массиве не содержащую символа abcd_84 Microsoft Office Excel 4 19.09.2014 12:55
Поиск символа Solar69 Помощь студентам 3 20.11.2013 20:57
Поиск символа в массиве edw1n Помощь студентам 8 06.02.2013 19:22
Поиск символа в массиве символов функцией c++ firephenix Помощь студентам 13 20.07.2011 20:49