Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 9
1

XOR шифрование для double

23.11.2017, 21:10. Показов 2825. Ответов 6

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть задание при помощи xor зашифровать и расшифровать массив double однобайтным ключом. Сложность возникла в том, как правильно применить побитовый xor для типа double ?
Буду благодарен за помощь)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.11.2017, 21:10
Ответы с готовыми решениями:

Шифрование Xor'ом
Добрый день, уважаемые) тут такое дело, сел делать курсач и столкнулся с проблемой. Работа по...

XOR шифрование
Прошу написать мне алгоритм расшифровки проксоренного сообщения. Мне известно что длина ключа 3...

Шифрование xor
Пишу шифрование методом xor. На вход поступает строка, каждый символ строки преобразуется в...

XOR шифрование
Задание:Написать программу на выбранном языке программирования, реализующую описанный выше алгоритм...

6
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
23.11.2017, 21:14 2
Приведёшь тип к массиву char.
1
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 9
23.11.2017, 21:40  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Приведёшь тип к массиву char.
А не подскажете, пожалуйста, как это сделать таким образом, что бы потом при расшифровке можно было обратно в double перевести ?

Добавлено через 1 минуту
Что то вроде такого ?

C++
1
2
3
4
5
unsigned char* xorPtr = (unsigned char*)doubleArr;
 
for (int i = 0; i < sizeof(doubleArr); i++){
    xorPtr[i] ^= 0xAA;
}
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
23.11.2017, 21:46 4
Лучший ответ Сообщение было отмечено FruQube как решение

Решение

double - это тот же самый массив unsigned char, состоящий из 8 элементов.
C++
1
2
3
4
5
6
double A = 10.111;
 
unsigned char * B = reinterpret_cast<unsigned char *>(&A);
size_t sizeOfB = sizeof(A);
 
double C = *reinterpret_cast<double*>(B);
1
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
23.11.2017, 22:00 5
C++
1
reinterpret_cast<unsigned char *>(doubleArr)
Размер берёшь от исходного и умножаешь на 8.
1
0 / 0 / 0
Регистрация: 02.10.2017
Сообщений: 9
23.11.2017, 22:02  [ТС] 6
Всем большое спасибо
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,668
23.11.2017, 22:06 7
Если статический, то можно ещё так:
C++
1
char (&xorPtr)[N * 8] = reinterpret_cast<char (&)[N * 8]>(doubleArr);
1
23.11.2017, 22:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.11.2017, 22:06
Помогаю со студенческими работами здесь

XOR шифрование
Здравствуйте. Не хотел создавать ещё тему, но у меня не все гладко прошло с XOR шифрованием, не...

Не выходит xor шифрование
есть вот такой код string xorcrypt(const string&amp; str, const string&amp; key) { string retval;...

Шифрование текста. XOR
Помогите с шифрование текста...с числоми вроде получалось. Что значит эта ошибка и как ее...

XOR шифрование/дешифрование
Всем привет. Пож-ста помогите написать программу, шифрующую/дешифрующую xor маску. 2 Примера...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru