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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.61
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
#1

Шифрация (С++) - C++

11.12.2011, 12:05. Просмотров 2422. Ответов 33
Метки нет (Все метки)

"Один из методов шифрации называется наложением гаммы. Делается это следующим образом: берется некоторое случайное число в диапазоне от 127 до 255 — гамма, и код каждого символа строки заменяется кодом, получающимся в результате операции: новый код=старый код XOR гамма.
Написать программу, реализующую:
• данный метод шифрации;
• дешифрацию строки при заданной гамме.

Входные данные:
• шифруемая строка.

Выходные данные:
• гамма;
• зашифрованная строка."
Совсем не понимаю, что от меня хотят
Подскажите, пожалуйста, с чего начать.

Добавлено через 13 часов 57 минут
Я так поняла, что нужно взять буквы из моей строки, представить их в двоичном коде и сложить с двоичным представлением буквы в новой полученной гамме (массиве).
Но не знаю, как реализовать в программе такое действие: Ввожу строку, и данный массив символов представляется в виде массива индекса данных элементов из массива "Алфавит".
Кто-нибудь знает как это можно реализовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2011, 12:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифрация (С++) (C++):

Шифрация - C++
Шифрация. Один из методов шифрации называется наложением гаммы. Делается это следующим образом: берется некоторое случайное число в...

Шифрация битов - C++
пyтём смeны мeстaми 0-гo и 1-гo битoв, 2-гo и 3-гo, … , 30-гo и 31-гo битoв. Фyнкция дoлжнa принимaть в кaчeствe пaрaмeтрa пeрeмeннyю...

Шифрация и дешифрация упаковкой рюкзака (Криптография) - C++
Помогите плиз написать код на плюсах Задание: Шифрация упаковкой рюкзака. Программа из трех независимых частей 1. выбор секретного...

Шифрация - Free Pascal
2 процедуры: первая шифрует прибавляя к ordery символа ключ+3 вторая дешифрует.. размерность в 256 и первые 32 управляющих символа учтены.....

шифрация пароля - Delphi БД
сделал программу которая записывает данные в sql базу на delphi. но такая неудача - пароль передается серверу в открытом виде....

Шифрация Трафика - Delphi
Всем привет, помогите пожалуйста с проблемой, уже неделю не могу решить. Имеется сервер онлайн игры (Lineage 2), Имеется его клиент....

33
alkagolik
Заблокирован
11.12.2011, 12:07 #2
Цитата Сообщение от Сольвейг Посмотреть сообщение
представить их в двоичном коде и сложить с двоичным представлением буквы в новой полученной гамме (массиве).
нет, все и так в двоичном коде. Векторная операция ^ и есть сложение по модулю 2. учить матчасть.
1
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 12:23 #3
Цитата Сообщение от alkagolik Посмотреть сообщение
Векторная операция ^
Битовая
Цитата Сообщение от alkagolik Посмотреть сообщение
учить матчасть.
1
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:34 #4
Цитата Сообщение от Сольвейг Посмотреть сообщение
"Один из методов шифрации называется наложением гаммы. Делается это следующим образом: берется некоторое случайное число в диапазоне от 127 до 255 — гамма
Любой файл это последовательный набор байт, значения которых от 0 до 255, то есть элементы кольца вычетов по модулю 256. Поэтому можно методом гаммирования зашифровать любой файл (лучше рассматривать двоичные файлы) и каждый элемент гаммы - число от 0 до 255
1
alkagolik
Заблокирован
11.12.2011, 12:44 #5
Цитата Сообщение от Deviaphan Посмотреть сообщение
Битовая
с каких пор байт не вектор, а векторная операция - битовая?
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 12:45 #6
Цитата Сообщение от alkagolik Посмотреть сообщение
а векторная операция - битовая?
Примерно с тех пор, как она называется bitwise, то есть побитовая.)
0
alkagolik
Заблокирован
11.12.2011, 12:46 #7
Deviaphan, не знаю я в математике никаких битвайсов
0
fasked
Эксперт С++
4952 / 2532 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
11.12.2011, 12:48 #8
Цитата Сообщение от Сольвейг Посмотреть сообщение
Совсем не понимаю, что от меня хотят
Еще бы. Шифрация, дешифрация.. я бы тоже не понял.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 12:51 #9
Цитата Сообщение от alkagolik Посмотреть сообщение
не знаю я в математике
В С++ нет векторных операторов. Вообще. И векторного оператора ^ нету, а битовый оператор ^ есть.

Добавлено через 23 секунды
Цитата Сообщение от alkagolik Посмотреть сообщение
не знаю я в математике никаких битвайсов
А в математике нет никаких байтов.
0
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 12:52  [ТС] #10
Для того, чтобы сложить, мне же всё равно нужно как-то вывести вместо буквы её индекс в массиве.
Я не понимаю как.
0
soon
2542 / 1307 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 12:53 #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstring>
 
void gammaEnDecrypt(std::string::iterator begin, std::string::iterator end, const int gamma)
{
    for( ; begin != end; ++begin)
        *begin ^= gamma;
}
    
int main()
{
    std::string str;
    char ch = 'a';
    str += (ch); str += (ch + 13); str += (ch + 3); str += ' ';
    str += (ch + 24); str += (ch + 14); str += (ch + 20); str += ' ';
    str += (ch + 13); str += (ch + 4); str += (ch + 4); str += (ch + 3); str += ' ';
    str += (ch + 8); str += (ch + 19); str += "?!";
    const int gamma = 0x9D;
    gammaEnDecrypt(str.begin(), str.end(), gamma);
    
    int g;
    std::cin >> g;
    gammaEnDecrypt(str.begin(), str.end(), g);
    
    std::cout << str << std::endl;
    
    return 0;
}
1
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:53 #12
Цитата Сообщение от Сольвейг Посмотреть сообщение
Для того, чтобы сложить, мне же всё равно нужно как-то вывести вместо буквы её индекс в массиве.
Я не понимаю как.
символы хранятся в виде кодов, там уже число.
0
alkagolik
Заблокирован
11.12.2011, 12:53 #13
Цитата Сообщение от Deviaphan Посмотреть сообщение
В С++ нет векторных операторов. Вообще. И векторного оператора ^ нету, а битовый оператор ^ есть.
Цитата Сообщение от alkagolik Посмотреть сообщение
Векторная операция ^
Цитата Сообщение от Deviaphan Посмотреть сообщение
А в математике нет никаких байтов.
верно, есть вектор, а байт == вектор.
0
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 12:59  [ТС] #14
Цитата Сообщение от soon Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstring>
 
void gammaEnDecrypt(std::string::iterator begin, std::string::iterator end, const int gamma)
{
    for( ; begin != end; ++begin)
        *begin ^= gamma;
}
    
int main()
{
    std::string str;
    char ch = 'a';
    str += (ch); str += (ch + 13); str += (ch + 3); str += ' ';
    str += (ch + 24); str += (ch + 14); str += (ch + 20); str += ' ';
    str += (ch + 13); str += (ch + 4); str += (ch + 4); str += (ch + 3); str += ' ';
    str += (ch + 8); str += (ch + 19); str += "?!";
    const int gamma = 0x9D;
    gammaEnDecrypt(str.begin(), str.end(), gamma);
    
    int g;
    std::cin >> g;
    gammaEnDecrypt(str.begin(), str.end(), g);
    
    std::cout << str << std::endl;
    
    return 0;
}
Программа не запускается, выдаёт много ошибок
0
Thinker
Эксперт С++
4229 / 2203 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 12:59 #15
Цитата Сообщение от alkagolik Посмотреть сообщение
байт == вектор

Не по теме:

Не совсем. Если рассматривать векторные пространства, то, например множество непрерывных функций на отрезке [a,b] является векторным пространством, где вектор - функция и т.д.

0
11.12.2011, 12:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2011, 12:59
Привет! Вот еще темы с ответами:

шифрация кода программы - Delphi
прочитал занимательную статью http://www.delphikingdom.com/asp/viewitem.asp?catalogid=846 но из-за неграмотности или кривых рук не могу...

Шифрация наложением гаммы - Pascal
Шифрация. Один из методов шифрации называется наложением гаммы. Делается это следующим образом: берется некоторое случайное число в...

Шифрация строки в sha256 - C#
Всем привет! Как возможно зашифровать строку в sha256 и получить эту же строку в зашифрованном виде? Если использовать код, который...

Шифрация и дешифрация пароля - Delphi БД
Здравствуйте! Есть такой вопрос нужно зашифровать пароль который хранится в таблице БД... Есть таблица пользователи там логины и...


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

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

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