1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|||||||||||
1 | |||||||||||
Регистр сдвига c линейной обратной связью12.09.2018, 13:21. Показов 10365. Ответов 48
Метки нет (Все метки)
Есть код -шифрование с помощью регистра сдвига c линейной обратной связью , который считывает правильно ,правильно выводит в консоль и расшифровывает правильно.
Но вместо вывода в шифрованом виде выводит ???? В чем проблема?
0
|
12.09.2018, 13:21 | |
Ответы с готовыми решениями:
48
Регистр сдвига с линейной обратной связью Шифровальщик по принципу регистра сдвига c линейной обратной связью не работает с русским текстом Служба Windows с фоновой работой и обратной связью Регистр сдвига с линейной обратной связью |
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
12.09.2018, 13:32 | 2 |
Алексей2332, консоль по умолчанию выводит в кодировке cp-866. Поэтому и знаки вопроса.
0
|
Модератор
|
|
12.09.2018, 13:34 | 3 |
У Вас 200 строк кода и не одного комментария. Как разбираться? Только для понимания что-куда надо потратить не мало времени.
Закомментируйте хотя бы методы и свойства и комментируйте не "//...." , а "///<summary>......".
0
|
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
|
|||||||||||
12.09.2018, 13:54 | 4 | ||||||||||
Даже не спасает
0
|
Модератор
|
|
12.09.2018, 14:29 | 5 |
amr-now, там в самом классе
lfsr с данными работают, то как с числами, то как с символами. Без пол литра не разберёшься.По самому смыслу шифрования, надо входные данные конвертировать в числовые (при этом отбросить всё лишнее и сжать) и хранить, обрабатывать в таком виде, а при запросе на вывод проводить обратную конвертацию. Но сделано совсем по другому. Например, по смыслу двоичный ключ хранится как строка символов. Отсюда и вся путаница.
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
12.09.2018, 15:29 [ТС] | 6 |
amr-now, И как исправить ?
0
|
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
12.09.2018, 16:00 | 7 |
Алексей2332, а не надо никак выводить. Зашифрованный текст не требует вывода на консоль по своему смыслу.
Вывести надпись: TOP SECRET и всё.
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
12.09.2018, 16:04 [ТС] | 8 |
amr-now, Боюсь меня не поймут, это же для универа
0
|
6492 / 3903 / 2005
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
12.09.2018, 16:09 | 9 |
Алексей2332, Вам никто не мешает вывести шифровку типа круто числами байтами. Юстас Алексу.
Преподы в осадок выпадут!
0
|
Модератор
|
|
12.09.2018, 18:02 | 10 |
Выводите в шестнадцатиричном виде.
Добавлено через 10 минут По самому алгоритму. Как я понял, ключ шифрования это свойство Key . устанавливается оно у Вас только в одном месте - в конструкторе класса. Больше нигде его значение не используется.Или я не внимательно смотрел код.... Или Вы неправильно реализовали шифрование и получили, вместо шифрования, просто перестановку битов. Добавлено через 6 минут Насколько помню, этот алгоритм требует сначала сжатия информации (GZipStream - возможно?) И потом наложение ключа (исключающее или) на сжатый код с последовательным параллельным сдвигом кода и ключа. Даже, если опустить часть со сжатием/распаковкой, то всё равно - наложения ключа у Вас нет.
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
13.09.2018, 08:56 [ТС] | 11 |
Элд Хасп, понял,, надо будет заняться. Вы не сможете мне помочь?
0
|
Модератор
|
|
13.09.2018, 10:37 | 12 |
Я эти алгоритмы очень смутно помню. Учил всё это лет 30 назад.
У Вас же не реальная, а учебная задача? Если да, то можно пренебречь сжатием/рассжатием - это влияет только на возможность вскрытия шифра. Сам детальный алгоритм шифрования скиньте сюда - постараюсь помочь. Но Вам по любому понадобится проштудироватиь способы работы с двоичными (битовыми) данными - это основа почти всех методов шифрования.
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
13.09.2018, 10:43 [ТС] | 13 |
Элд Хасп, да, мне нужно потоковое шифрование при помощи регистра сдвига с линейной обратной связью. Спасибо, мне бы очень не помешала помощь, а насчет теории я посмотрю, спасибо. Методичку попозже покажу, но явного условия там нет
0
|
Модератор
|
||||||
13.09.2018, 20:15 | 14 | |||||
Сделал класс регистра. И программу для проверки. Посмотрите как должен он работать.
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
18.09.2018, 13:08 [ТС] | 15 |
Элд Хасп, Ругается вот так
0
|
Модератор
|
|
18.09.2018, 13:38 | 16 |
Первая ошибка. В проекте нет точки входа - нет
static void Main(string[] args) . Вы или стёрли её или создали проект не как консольное приложение.Вторая ошибка. Нет имени MessageBox . Наведите на место в коде где используется MessageBox - оно будет подчёркнуто красным. И всплывёт меню "Быстрое решение". В нём выберите вставить пространство System.Windows
0
|
Модератор
|
||||||
18.09.2018, 13:48 | 17 | |||||
По первой ошибке, может быть и наоборот у Вас больше чем одна
static void Main(string[] args) Добавлено через 1 минуту Как шифровать поток байтов с использованием класса регистра разобрались? Добавлено через 5 минут Вот класс дополненный методом шифрования потока
0
|
1 / 1 / 0
Регистрация: 06.09.2018
Сообщений: 40
|
|
18.09.2018, 13:49 [ТС] | 18 |
Элд Хасп, Подключил, но ошибка осталась та же. Я попробовал вместо поставить Console.WriteLine
Но выходит так Сейчас гляну выше
0
|
Модератор
|
|
18.09.2018, 14:03 | 20 |
Вот скриншоты
0
|
18.09.2018, 14:03 | |
18.09.2018, 14:03 | |
Помогаю со студенческими работами здесь
20
Линейный рекуррентный регистр сдвига с обратной связью, реализация на python Линейный регистр с обратной связью Помогите с обратной связью связью Гаммирование с обратной связью Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |