Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
#1

Работа с HEX

01.05.2011, 21:02. Просмотров 4803. Ответов 12
Метки нет (Все метки)

У меня вот такая задача - надо создать программу-шифровальщик с помощью метода XOR. Но так как данный метод основывается на взаимодействии с HEX-"таблицами", то я хотел спросить, как работать с ними (HEX-"таблицами") на C++?

Если можно, коротенькое, но понятное объяснение с примером (не самого шифрования, а просто работы с HEX)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2011, 21:02
Ответы с готовыми решениями:

Если HEX одного файла заменить на HEX другого, то изменится ли файл и будет ли работоспособным?
Привет, если два файла a.exe(калькулятор) и b.exe(выводит строку "Hello World")...

[BMP] HEX (из HEX-редактора) в DEC
Имеется файл *.bmp (который нельзя вложить в сообщение). В самом файле есть его...

Std::count << std::hex << (long) 0x0a; Как сделать, чтоб от HEX значения ноль при выводе не убирался?
сабж...( std::count &lt;&lt; std::hex &lt;&lt; (long) 0x0a; ) выводится просто a, вместо...

Как разбить одно число HEX число на два числа HEX ?
Задача в том, что бы одно число в виде HEX (к примеру 0xD681) разбить на 2...

std::ios::hex или std::ios.hex
привет в коде встретил вот такую строчку ss.setf(std::ios.hex,...

12
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.05.2011, 21:07 #2
Sahon, что такое HEX-таблица и каким боком она относится к XOR-шифрованию?
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 21:14  [ТС] #3
Цитата Сообщение от fasked Посмотреть сообщение
Sahon, что такое HEX-таблица и каким боком она относится к XOR-шифрованию?
Ну HEX-"таблицей" я называю это (см. вложение) и метод XOR непосредственно работает с HEX-адресами.
1001 1101 - адрес
XOR
1101 1111 - шифр
-----------
0100 0010 - итоговый адрес
0
Миниатюры
Работа с HEX  
fasked
Эксперт С++
4978 / 2557 / 241
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
01.05.2011, 21:20 #4
Цитата Сообщение от Sahon Посмотреть сообщение
метод XOR непосредственно работает с HEX-адресами
этот метод просто применяет операцию побитового сложения по модулю 2 для ключа и открытого текста, все.
Цитата Сообщение от Sahon Посмотреть сообщение
(см. вложение)
число оно и в африке число. и в каком оно виде HEX, DEC, BIN не важно, результат все равно одинаковый будет. в общем-то это я все к тому, что символы в компьютере это тоже числа все, что вам нужно это сложить символы с ключом.
Цитата Сообщение от Sahon Посмотреть сообщение
HEX-адресами
простите, но вы несете полную чепуху, какие еще адреса?
а еще совет, чтобы Вам могли помочь называйте вещи общепринятыми именами, а не так как Вам вздумается.
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 21:24  [ТС] #5
Цитата Сообщение от fasked Посмотреть сообщение
этот метод просто применяет операцию побитового сложения по модулю 2 для ключа и открытого текста, все.

число оно и в африке число. и в каком оно виде HEX, DEC, BIN не важно, результат все равно одинаковый будет. в общем-то это я все к тому, что символы в компьютере это тоже числа все, что вам нужно это сложить символы с ключом.
Это то я понимаю. А вот как в С++ это сделать - не очень

Цитата Сообщение от fasked Посмотреть сообщение
простите, но вы несете полную чепуху, какие еще адреса?
а еще совет, чтобы Вам могли помочь называйте вещи общепринятыми именами, а не так как Вам вздумается.
Зря чтоли в первая колонка называется Address?
0
resource2008
109 / 109 / 18
Регистрация: 11.03.2011
Сообщений: 421
01.05.2011, 22:07 #6
Цитата Сообщение от Sahon Посмотреть сообщение
Зря чтоли в первая колонка называется Address
это смещение в файле. при данном методе шифрования оно вообще никуда не учитывается, ибо размер зашифрованных данных такой же как исходных.


Цитата Сообщение от Sahon Посмотреть сообщение
Это то я понимаю. А вот как в С++ это сделать - не очень
так же как на любом другом языке программирования.

операция XOR вроде бы как "^" на С++ выглядит.

общая алгоритмика работы:
- открыли исходный файл
- прочитали данные размером с ключ
- сложили по модулю 2 с ключом
- положили результат куда нам надо
- переместили каретку в файле, перешли ко второму пункту

тип данных нам неважен. в результате машина выполнит действия все равно над двоичной информацией.

да, и еще: hex, dec, oct, bin нас волнуют только при отображении на экране (в каком формате показывать их пользователю)
об этом выше уже писали.
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:09  [ТС] #7
Цитата Сообщение от resource2008 Посмотреть сообщение
это смещение в файле. при данном методе шифрования оно вообще никуда не учитывается, ибо размер зашифрованных данных такой же как исходных.



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

операция XOR вроде бы как "^" на С++ выглядит.

общая алгоритмика работы:
- открыли исходный файл
- прочитали данные размером с ключ
- сложили по модулю 2 с ключом
- положили результат куда нам надо
- переместили каретку в файле, перешли ко второму пункту

тип данных нам неважен. в результате машина выполнит действия все равно над двоичной информацией.

да, и еще: hex, dec, oct, bin нас волнуют только при отображении на экране (в каком формате показывать их пользователю)
об этом выше уже писали.
А можно пример маленькой программы, а то я с HEX не работал ранее (вообще)
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.05.2011, 22:10 #8
Sahon, Тфу ты ну ты.
HEX - это всего навсего система счисления. А именно 16-я.

10hex == 16dec...

В чем проблема-то?
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:11  [ТС] #9
Цитата Сообщение от ForEveR Посмотреть сообщение
Sahon, Тфу ты ну ты.
HEX - это всего навсего система счисления. А именно 16-я.

10hex == 16dec...

В чем проблема-то?
Та знаю я блин, но с файлами работать не умею!
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.05.2011, 22:15 #10
Sahon, Во. А это уже другое дело. Знаете правильный совет? Книгу в руки и читать.
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:16  [ТС] #11
Цитата Сообщение от ForEveR Посмотреть сообщение
Sahon, Во. А это уже другое дело. Знаете правильный совет? Книгу в руки и читать.
Мне бы маленький примерчик на будущее...
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
01.05.2011, 22:29 #12
По работе с файлами?) Да запросто.
Прога почти ничего не делает, просто считывает числа в 16-ом формате из файла и выводит их в 16-ом, 8-ом, 10-ом.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    const std::string f_name = "input.txt";
    std::ifstream ifs(f_name.c_str());
    if(!ifs)
    {
        std::cerr << "can`t open file: " << f_name <<'\n';
        return 1;
    }
    int one = 0;
    while(!ifs.eof())
    {
        ifs >> std::hex >> one;
        std::cout << "Hex: " << std::hex << one << '\n'
            << "Oct: " << std::oct << one << '\n'
            << "Dec: " << std::dec << one <<'\n';
    }
    return 0;
}
0
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:31  [ТС] #13
ForEveR, спасибо
0
01.05.2011, 22:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 22:31

hex редактор
всем привет ) есть код #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include...

символы в hex
Подскажите плс , как перевести char в hex код, допустим в консоле пишу Hello у...

hex vs base64
Всем доброе утро! Снова с вопросом. Не могу разобраться с кодировкой хекса в...


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

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

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