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

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

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

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

11.12.2011, 12:05. Просмотров 2513. Ответов 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
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:05 #16
Цитата Сообщение от Сольвейг Посмотреть сообщение
Программа не запускается, выдаёт много ошибок
1) Уверены, что на С++?
Код для Си
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
void gammaEnDecrypt(char* begin, const int gamma)
{
    for( ; *begin; ++begin)
        *begin ^= gamma;
}
    
int main(void)
{
    char str[] = "lalalalalalal";
    const int gamma = 0x9D;
    gammaEnDecrypt(str, gamma);
    
    int g;
    scanf("%d", &g);
    gammaEnDecrypt(str, g);
    
    printf("%s", str);
    
    return 0;
}

2) Ошибки приведите.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 13:06 #17
Цитата Сообщение от soon Посмотреть сообщение
2) Ошибки приведите.
#include <cstring>
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:08 #18
soon, в большинстве случаев стараются гамму сделать не периодической, чтобы вскрыть шифр было почти невозможно. Данный шифр, заявленный в первом посте, называется шифром Вернама
0
alkagolik
Заблокирован
11.12.2011, 13:10 #19
Цитата Сообщение от Thinker Посмотреть сообщение
не периодической
раскройте пожалуйста
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 13:12 #20
Цитата Сообщение от Thinker Посмотреть сообщение
в большинстве случаев стараются гамму сделать не периодической
Тут период равен вообще единице.)
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:13 #21
Цитата Сообщение от alkagolik Посмотреть сообщение
раскройте пожалуйста
Если гамма имеет период, то в общем случае такой шифр называется шифров Виженера, для которого имеются эффективные методы взлома.

Добавлено через 1 минуту
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тут период равен вообще единице.)
С чего вы взяли?
Какой период здесь: 100110011001 ?
1
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:14  [ТС] #22
Цитата Сообщение от soon Посмотреть сообщение
1) Уверены, что на С++? [SPOILER="Код для Си"]
2) Ошибки приведите.
Код для Си запускается без ошибок. Но вместо зашифрованного текста одни нули...
0
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:15 #23
Deviaphan, А что не так с cstring?

Добавлено через 34 секунды
Цитата Сообщение от Сольвейг Посмотреть сообщение
Но вместо зашифрованного текста одни нули...
157 вводили?
1
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:18 #24
soon, можно хотя бы на базе одного байта с помощью линейного конгруэнтного генератора сформировать гамму:

http://www.cyberforum.ru/cgi-bin/latex.cgi?x_n = ax_{n-1} + b

Да, она будет слабой (даже не то слово), но хотя бы период не 8 битам будет
1
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:18 #25
Thinker, т.е. желательно, чтобы для каждого символа был случайный, ранее не использовавшийся ключ?
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:20 #26
Цитата Сообщение от soon Посмотреть сообщение
Thinker, т.е. желательно, чтобы для каждого символа был случайный, ранее не использовавшийся ключ?
Не использовавшейся ранее - так не получится для больших сообщений, а в плане случайный - в точку попали)
1
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:23  [ТС] #27
Цитата Сообщение от soon Посмотреть сообщение
Deviaphan, А что не так с cstring?

Добавлено через 34 секунды

157 вводили?
Выдаётся текст до шифровки

И, к сожалению, по условию у меня текст вводится с консоли, то есть он может быть любым... Нужна программа, шифрующая любой текст, вводимый с консоли.
0
soon
2545 / 1310 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:27 #28
Цитата Сообщение от Сольвейг Посмотреть сообщение
И, к сожалению, по условию у меня текст вводится с консоли, то есть он может быть любым... Нужна программа, шифрующая любой текст, вводимый с консоли.
Хорошо, что мешает чуть-чуть подредактировать текст и написать так, как вам надо? Функция у вас есть, задаете строку и гамму с клавиатуры, передаете в функцию, выводите строку - вуаля!
Я не ставил себе задачу написать за вас всю программу, я лишь показал как это делается. Допиливать - уже ваше дело
0
Thinker
Эксперт С++
4231 / 2205 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:30 #29
Цитата Сообщение от Deviaphan Посмотреть сообщение
Тут период равен вообще единице.)

Не по теме:

Хотя, если вы имели ввиду период в байтах, то абсолютно правы

0
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:34  [ТС] #30
Цитата Сообщение от soon Посмотреть сообщение
Хорошо, что мешает чуть-чуть подредактировать текст и написать так, как вам надо? Функция у вас есть, задаете строку и гамму с клавиатуры, передаете в функцию, выводите строку - вуаля!
Я не ставил себе задачу написать за вас всю программу, я лишь показал как это делается. Допиливать - уже ваше дело
Просто строка выводится незашифрованная. Не понимаю, почему.
0
11.12.2011, 13:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2011, 13:34
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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