Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

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

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

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

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


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

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

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

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

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



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

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

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

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

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

10hex == 16dec...

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

10hex == 16dec...

В чем проблема-то?
Та знаю я блин, но с файлами работать не умею!
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
01.05.2011, 22:15     Работа с HEX #10
Sahon, Во. А это уже другое дело. Знаете правильный совет? Книгу в руки и читать.
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:16  [ТС]     Работа с HEX #11
Цитата Сообщение от ForEveR Посмотреть сообщение
Sahon, Во. А это уже другое дело. Знаете правильный совет? Книгу в руки и читать.
Мне бы маленький примерчик на будущее...
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
01.05.2011, 22:29     Работа с HEX #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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.05.2011, 22:31     Работа с HEX
Еще ссылки по теме:

Std::count << std::hex << (long) 0x0a; Как сделать, чтоб от HEX значения ноль при выводе не убирался? C++
Если HEX одного файла заменить на HEX другого, то изменится ли файл и будет ли работоспособным? C++
HEX в BIN C++
C++ Как разбить одно число HEX число на два числа HEX ?
C++ Из Hex в Dec

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

Или воспользуйтесь поиском по форуму:
Sahon
10 / 10 / 1
Регистрация: 09.04.2010
Сообщений: 141
01.05.2011, 22:31  [ТС]     Работа с HEX #13
ForEveR, спасибо
Yandex
Объявления
01.05.2011, 22:31     Работа с HEX
Ответ Создать тему
Опции темы

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