Метод шифрования гаммированием

667
08 июня 2017, 04:47

Добрый день. Я реализовывал шифрование в лабораторной работе на языке c# методом гаммирования, в моей реализации значения складываются по модулю 2. Столкнулся с проблемой, что возникают ошибки и неправильно происходит дешифровка, это происходит из-за того, что после сложения могут получиться числа большие, чем длина алфавита. Брать mod по длине алфавита не помогает. Кто-то сталкивался с такой проблемой или есть идеи как это решить?

UPD код шифрования text - текст сообщения, lol[] - генерирую массив случайных значений.

    public override string Crypt(bool c)
    {
        int[] alphaindex = new int[alphabet.Length];
        for(int i = 0;i< alphabet.Length;i++)//расставляем индексы для букв в алфавите
        {
            alphaindex[i] = i;
        }
        string newtext = "";//выходящий текст
        int ikey = 1;//Значение для перевода словесного ключа в число
        for(int i = 0;i<key.Length;i++)
        {
            ikey += alphaindex[indexof(alphabet, key[i])];
        }
         int[] lol = new int[text.Length];//массив случайных значений по длине текста
        for (int i = 0; i < text.Length; i++)
            lol[i] = random.Next(ikey);
        for (int i = 0;i<text.Length;i++)
        {
            newtext += alphabet[(alphaindex[indexof(alphabet, text[i])] ^ lol[i])%alphabet.Length];
        }
        return newtext;
    }
READ ALSO
C# — Из-за чего нестабильный &#171;Random&#187;?

C# — Из-за чего нестабильный «Random»?

Возникла проблема с функцией "Random"Иногда не выводит результат

306
Как програмно прокрутить ScroolBar в ListBox в конец списка

Как програмно прокрутить ScroolBar в ListBox в конец списка

Как програмно прокрутить ScroolBar в ListBox в конец списка

400
Как получить время затраченное на тест Selenium Visual Studio?

Как получить время затраченное на тест Selenium Visual Studio?

Написал тест, который открывает страницу и ждет пока данные будут загружены, время засекаю сразу после нажатия на кнопку, до того момента,...

334