Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.91
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
#1

Работа с HEX - C++

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

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

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

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

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

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

Как разбить одно число HEX число на два числа HEX ? - C++
Задача в том, что бы одно число в виде HEX (к примеру 0xD681) разбить на 2 числа HEX (из 0xD681 - &gt; 0xD6 и 0x81) именно что бы вот так...

std::ios::hex или std::ios.hex - C++
привет в коде встретил вот такую строчку ss.setf(std::ios.hex, std::ios::basefield); и на VS2008 это работает. Разве это...

hex редактор - C++
всем привет ) есть код #include &lt;cstdlib&gt; #include &lt;fstream&gt; #include &lt;iterator&gt; #include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; using...

12
fasked
Эксперт С++
4957 / 2537 / 180
Регистрация: 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
Эксперт С++
4957 / 2537 / 180
Регистрация: 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 / 2
Регистрация: 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
В астрале
Эксперт С++
7986 / 4745 / 321
Регистрация: 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
В астрале
Эксперт С++
7986 / 4745 / 321
Регистрация: 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
В астрале
Эксперт С++
7986 / 4745 / 321
Регистрация: 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 в BIN - C++
Товарищи!!! доброго времени суток!! Прошу помощи вот в какой задаче Есть некий Hex файл. :020000040800F2 ...

символы в hex - C++
Подскажите плс , как перевести char в hex код, допустим в консоле пишу Hello у меня это сохраняется в тхтФайл, но в hex формате Hello...

Hex редактор - C++
Извините, что кинул тему не туда. Не нашел подходящего раздела. (надеюсь, тема будет перемещена модераторами). Вопрос такой... Кто...

Перевернуть hex - C++
как перевернуть число? чтобы 0xA5 стало 0х5А


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

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

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