|
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
|
||||||||||||
Алгоритм шифрования RC4 не совсем корректно работает28.11.2014, 11:38. Показов 2731. Ответов 6
Метки нет (Все метки)
Всем привет!
Знаю что тема избитая, но всё таки хочется понять проблему и решить. Алгоритм разобрал и написал. Спасибо википедии. Пример взял здесь. https://ru.wikibooks.org/wiki/... %D0%B8_RC4
Теперь по проблеме. Данная реализация шифрует и расшифровывает файл. НО расшифровка проходит на половину. То есть половина файла нормально расшифровывается а оставшаяся часть полный бред. На самом деле конечно не половина файла расшифровывается а гораздо меньше, примерно 1/10. Собственно вопрос: Где грабли и как починить? У меня есть соображения на вот эту строку. j = ( j + key[ i % key_length ] + S[ i ] ) % 256; По-моему вот в этом месте key[i % key_length] вылазием за рамки массива key. Подскажите гуру решение! Добавлено через 1 час 0 минут Вот реализация из википедии.
0
|
||||||||||||
| 28.11.2014, 11:38 | |
|
Ответы с готовыми решениями:
6
Алгоритм шифрования RC4 Код работает не совсем корректно со строками Написал програму, но она не совсем корректно работает |
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.11.2014, 14:30 | |
|
Что здесь смотреть? Ты свою реализацию показывай.
0
|
|
|
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
|
|||||||||||||||||
| 28.11.2014, 16:09 [ТС] | |||||||||||||||||
|
Это и есть реализация... Читаю файл в массив сначала.
P.S. Обнаружил следующие. После записи в файл размер файла изменяется на большей. Вот например реальные цифры. Исходный файл 151945 байт. После шифрования увеличился на 616 байт и стал 152561 байт. Взял другой файл. Исходный размер 14220. После шифрования увеличился на 65 байт. При чём я считываю файл и записываю в глобальную переменную размер массива. Выделяю для результата такой же массив плюс 1 байт. И записываю в файл ровно столько же сколько и прочитал. Т.е. у меня везде одна и та же переменная с одним значением полученным при чтении исходного файла. Откуда берутся лишние байты я понять не могу. Файл при записи открывается для перезаписи. Да и вобще я удалял старый чтобы файл создавался заново.
0
|
|||||||||||||||||
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 28.11.2014, 18:15 | |
|
Зачем этот лишний байт?
Файлы-то разные у тебя? Если нет, то закрой после чтения и открой снова на запись.
0
|
|
|
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
|
|
| 28.11.2014, 18:47 [ТС] | |
|
Конечно в разные файлы пишет, само собой.
Лишний байт по привычки да и так сказать на всякий случай. Но он роли не играет. Везде указывается один размер, первоначальный. Да и один байт это не десятки и сотни лишних. В википедии в скольз упоминаются оказии с долгим использованием ключа, но тольком как бороться с этим не написано. Вот цитата: В отличие от современных шифров (таких, как в eSTREAM), RC4 не использует отдельной оказии (англ.*nonce) наряду с ключом. Это значит, что если один ключ должен использоваться в течение долгого времени для шифрования нескольких потоков, сама криптосистема, использующая RC4, должна комбинировать оказию и долгосрочный ключ для получения потокового ключа для RC4. Один из возможных выходов*— генерировать новый ключ для RC4 с помощью хэш-функции от долгосрочного ключа и оказии. Однако многие приложения, использующие RC4, просто конкатенируют ключ и оказию. Вот не из за этого ли такая штука получается* Если да, то как поправить. Что такое есть эта оказия и как с ней бороться? Как конкатенировать ключ и эту оказию?
0
|
|
|
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
| 29.11.2014, 11:48 | |
|
Если out и buf одинаковы, то никак длиннее файл не станет.
0
|
|
|
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
|
|
| 29.11.2014, 15:05 [ТС] | |
|
0
|
|
| 29.11.2014, 15:05 | |
|
Помогаю со студенческими работами здесь
7
Алгоритмы шифрования RC4, DES, RSA Алгоритм шифрования RC4 Не совсем понятен алгоритм шифрования/дешифрования шифра ГОСТ 28147-89 не совсем корректно работает Не совсем корректно работает Like Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|