Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577

Кодирование/Декодирование

17.04.2015, 17:17. Показов 4999. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Народ выручайте)))
Имеется функция, которая как кодирует так и декодирует текст:
C++
1
2
3
4
5
6
7
8
9
AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
{
AnsiString out;
for (int x=1;x<in.Length()+1;x++)
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]);
        }
return out;
}
В шифровании я "полный чайник", помогите разораться, что тут происходит:
Какие параметры функция принимает, что происходит в цикле и т.п. (в общем Вы и так прекрасно знаете)

Покопался в интернете нашел много ссылок где есть эта функция, но не написано, что она делает:
Кодирование и декодирование теста
http://www.cyberguru.ru/cbuild... nnykh.html
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.04.2015, 17:17
Ответы с готовыми решениями:

Кодирование и декодирование теста
Доброго времени ссуток, есть система тестов в которой сохраняются результаты в txt файл в виду конфидециальности результатов для доступа к...

Indy кодирование/декодирование, TIdEncoderMIME (IdBase64Encoder)
Здравствуйте! Нужно шифровать, расшифровывать данные, остановился на компонентах TIdEncoderMIME (или IdBase64Encoder в builder 6). Шифруют...

Декодирование даты
Доброе утро! В чем проблема ? Почему не компилируется ? где копать ? Спасибо! unsigned short year,month,day; TDateTime CurrentDate =...

5
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
17.04.2015, 20:07
in - входная строка; pass - пароль
На выходе - строка, полученная с помощью исключающего ИЛИ (XOR, ^) https://ru.wikipedia.org/wiki/... BB%D1%8E_2.
В цикле поочередно берется каждый (а) символ входной строки и (б) символ пароля под номером
C++
1
x%pass.Length()+1
(т.е. определяемый как остаток от деления x на длину пароля с прибавлением в итоге 1).
х принимает значение от 1 до длины входной строки.
К (а) и (б) применяется исключающее ИЛИ, результат "переводится" в char и добавляется к выходной строке (out).
Как в случае шифрования, так и расшифровки пароль должен быть один и тот же, только в первом случае in - кодируемая строка, во втором - декодируемая.
out - возвращаемое в качестве результата значение работы функции.
В заключение скажу, что для понимания кода не нужно быть семи пядей во лбу. Требуются лишь базовые знания.
Но если воспринимать код проблемно, то тут стоит задуматься. Очень серьезно.
1
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
17.04.2015, 20:15  [ТС]
Цитата Сообщение от gunslinger Посмотреть сообщение
то тут стоит задуматься. Очень серьезно
Это не значит, что я вообще ни чего не знаю, просто с шифрованием практически не сталкивался)))
0
place status here
 Аватар для gunslinger
3186 / 2220 / 640
Регистрация: 20.07.2013
Сообщений: 6,014
17.04.2015, 23:08
Не в шифровании дело. Понимать, КАК это работает, при знании языка, не зависит от того, сортируем ли мы массив или ищем строку в тексте.
А вот знать, ПОЧЕМУ это работает, скорее область математики. И тут разбираться в общем случае не нужно. Взять формулу с той же википедии и вперед кодить. Доказательство теорем и вывод формул для программиста вторичная задача, если задача (читай, работодатель) того не требует.
P.S.: в последнее время стал много придираться. UI меня поймет. Разжевывать мало кому нравится, особенно если этой каши переел по самое не хочу.
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
18.04.2015, 01:23
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AnsiString XOR_Crypt(AnsiString in, AnsiString pass)
// функция возвращает "обработанную" строку; параметрами её служат
// две строки: исходный текст и текст-маска
{
AnsiString out; // инициализируется возвращаемая строка;
        // по всей видимости - неправильно, может содержать мусор
        // особенно если вместо присваивания прибавляют: +=
        // Правильным будет  AnsiString out = "";
for (int x=1;x<in.Length()+1;x++) // здесь цикл от первого до последнего символа входной строки
        {
        out += (char)(in[x] ^ pass[x%pass.Length()+1]); // здесь формируется
      // возвращаемая строка путем посимвольной операции "исключающее ИЛИ" над
      // символами входной строки и маски; вот это - pass[x%pass.Length()+1]
      // нужно для случая, если строка маски короче исходной строки (ограничивается
      // номер текущего символа по модулю размера маски
        }
return out; // возвращается полученная строка
}
1
20.04.2015, 22:16

Не по теме:

Цитата Сообщение от gunslinger Посмотреть сообщение
P.S.
Это в порядке вещей. Следующий этап - осознание тщетности раздражения по данному вопросу. Мир не изменится по щелчку пальцев. :)

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.04.2015, 22:16
Помогаю со студенческими работами здесь

Декодирование строки из URL
Подскажыте есть ли аналог функцыи в С++ Builder Синтаксис: string urldecode (string str) Декодирует в строке последовательности...

Декодирование входящего звука!
Требуется преобразовать входящий сигнал состоящий из одной тональности в последовательность бинарного кода (приходит точка или тире азбуки...

Indy декодирование html кода
Есть код: &amp;lt;!--LiveInternet counter--&amp;gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&amp;lt;!-- document.write(&amp;quot;&amp;lt;a...

кодирование
надо написать курсовик в инете нечего не нашел только декодирование на вашем сайте собственно нужно написать кодер/декодер методам...

Кодирование
Как сделать кодирование в запросе к сайту cyb =...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru