Форум программистов, компьютерный форум, киберфорум
Наши страницы

C# Windows Forms

Войти
Регистрация
Восстановить пароль
 
28032015
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 3
#1

Шифр Гронсфельда. Неверное смещение буквы - C#

09.12.2016, 23:08. Просмотров 244. Ответов 2
Метки нет (Все метки)

Подскажите из за чего при шифровании данным методом может постоянно буква смещаться на 15 символов вперед от нужного?тоесть например "яд" с ключом 11 выдает не "ае" а "ос"
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static string GronsfeldEncipher(string toCode, string K)
        {
 
            string abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
 
            string result = "";
            for (int i = 0; i < toCode.Length; i++)
            {
                for (int j = 0; j < abc.Length; j++)
                {
                    if (toCode[i] == abc[j])
                    {
                        result += abc[(j + K[(i) % (K.Length)]) % (abc.Length)];
 
 
                    }
 
                }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.12.2016, 23:08
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Шифр Гронсфельда. Неверное смещение буквы (C#):

.NET 4.x Шифр Гронсфельда - C#
Привет , подскажите как реализовать Шифр Гронсфельда к с ключем 21031990, можете подсказать

Шифр Гронсфельда - Lazarus
Никак не разберусь как же все-таки работать с ASCII в Lazarus и возможно ли это вообще или только через UTF-8. Пытаюсь реализовать...

Шифр Гронсфельда - Java
В файл почему-то выводит только первый символ. Как можно исправить? static Formatter g; public static void main(String args){ ...

Шифр Гронсфельда (!) - C++
Пожалуйста, помогите! Очень срочно :) Написать программу на С++, осуществляющую шифрование и дешифрование каких-либо данных. Тип...

Шифр Гронсфельда - C++
Такой вопрос. Почему функция Gronsfeld всегда возвращает значение 0 (&quot;\0&quot;)? Может где ошибка, я не могу понять где? Помогите, кто может ...

Шифр Гронсфельда - Delphi
Составить программу на языке программирования Delphi, которая позволит закодировать исходный текст шифром Гронсфельда и выполнить обратное...

2
OwenGlendower
Супер-модератор
Эксперт .NET
8632 / 7637 / 2802
Регистрация: 17.03.2014
Сообщений: 14,998
Записей в блоге: 1
09.12.2016, 23:47 #2
28032015, потому что K это строка, следовательно выражение K[(i) % (K.Length)] возвращает символ, который далее приводится к int для сложения с j. Проблема в том что символ '1' имеет код 49, а не 1 как ты ожидаешь. Отсюда и получается это смещение. Нужно получить цифры из символов и работать с ними. Например так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static string GronsfeldEncipher(string toCode, string strKey)
{
    int[] key = strKey.Select(ch => ch - '0').ToArray(); 
    string abc = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя";
 
    string result = "";
    for (int i = 0; i < toCode.Length; i++)
    {
        for (int j = 0; j < abc.Length; j++)
        {
            if (toCode[i] == abc[j])
            {
                result += abc[(j + key[i % key.Length]) % abc.Length];
            }
        }
    }
    return result;
}
1
28032015
0 / 0 / 0
Регистрация: 23.03.2016
Сообщений: 3
11.12.2016, 18:09  [ТС] #3
спасибо!очень помогло
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2016, 18:09
Привет! Вот еще темы с ответами:

Шифр Гронсфельда - Lazarus
Суть шифра Гронсфельда: Ключ шифра – пятизначное число. Буквы текста разбиваются на группы по пять (цифры и специальные символы не...

Шифр Гронсфельда - Pascal
Помогите пожалуйста отладить код) Program Gronsfeld; const nn=32; {число букв в алфавите} type cifra=0..9; var key:array of cifra; ...

Шифр Гронсфельда - Delphi
Нужно сделать шифр Гронсфельда, чтобы был шифратор и дешифратор, не получается сделать, помогите в реализации

Шифр Гронсфельда - Delphi
Есть рабочий код метода Гронсфельда. Все идет отлично до первого пробела. Шифрование второго слова сбивается. Подскажите, пожалуйста, как в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru