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

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

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

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

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

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

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

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

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

Шифрация - 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ю...

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

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

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

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

Delphi и шифрация кода - Delphi
Опять я. И опять у меня возникают вопросы, поскольку я любопытный. Можно ли каким-то образом зашифровать весь код написанный в дельфи? ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:13     Шифрация (С++) #21
Цитата Сообщение от alkagolik Посмотреть сообщение
раскройте пожалуйста
Если гамма имеет период, то в общем случае такой шифр называется шифров Виженера, для которого имеются эффективные методы взлома.

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

Добавлено через 34 секунды
Цитата Сообщение от Сольвейг Посмотреть сообщение
Но вместо зашифрованного текста одни нули...
157 вводили?
Thinker
Эксперт C++
4221 / 2195 / 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 битам будет
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:18     Шифрация (С++) #25
Thinker, т.е. желательно, чтобы для каждого символа был случайный, ранее не использовавшийся ключ?
Thinker
Эксперт C++
4221 / 2195 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
11.12.2011, 13:20     Шифрация (С++) #26
Цитата Сообщение от soon Посмотреть сообщение
Thinker, т.е. желательно, чтобы для каждого символа был случайный, ранее не использовавшийся ключ?
Не использовавшейся ранее - так не получится для больших сообщений, а в плане случайный - в точку попали)
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:23  [ТС]     Шифрация (С++) #27
Цитата Сообщение от soon Посмотреть сообщение
Deviaphan, А что не так с cstring?

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

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

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

Не по теме:

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

Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:34  [ТС]     Шифрация (С++) #30
Цитата Сообщение от soon Посмотреть сообщение
Хорошо, что мешает чуть-чуть подредактировать текст и написать так, как вам надо? Функция у вас есть, задаете строку и гамму с клавиатуры, передаете в функцию, выводите строку - вуаля!
Я не ставил себе задачу написать за вас всю программу, я лишь показал как это делается. Допиливать - уже ваше дело
Просто строка выводится незашифрованная. Не понимаю, почему.
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:37     Шифрация (С++) #31
Потому, что она сначала шифруется с ключом 157, а затем дешифруется с тем же ключом, следовательно мы и имеем на выходе незашифрованную строку. При вводе другого ключа, строка будет еще раз шифроваться с введенным ключом, следовательно нужно будет 2 раза расшифровывать.
Сольвейг
0 / 0 / 0
Регистрация: 10.12.2011
Сообщений: 16
11.12.2011, 13:44  [ТС]     Шифрация (С++) #32
Цитата Сообщение от soon Посмотреть сообщение
Потому, что она сначала шифруется с ключом 157, а затем дешифруется с тем же ключом, следовательно мы и имеем на выходе незашифрованную строку. При вводе другого ключа, строка будет еще раз шифроваться с введенным ключом, следовательно нужно будет 2 раза расшифровывать.
Если ввожу другой ключ, на выходе получаются цифры.

Просто как я понимаю, при данном методе шифрования у меня на выходе тоже должны быть буквы. А здесь то цифры, то странные символы получаются. Вот я и хочу уточнить, правильно ли это. Или что-то я некорректно ввожу или некорректно работает.

Огромное Вам спасибо за помощь! Теперь я хоть представляю как это работает
soon
2539 / 1304 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
11.12.2011, 13:55     Шифрация (С++) #33
Еще раз. Моя программа - пример разшифровывания зашифрованного текста. Только пример. Но в ней есть рабочая функция. Которая принимает указатель на первый символ в строке. И гамму. И шифрует строку. Все остальное докручиваете сами, тут даже знаний никаких не надо.

Цифры выводятся потому, что:
0) Есть строка зашифрованная с ключом 157
1.0) Мы вводим верный ключ. Программа снова шифрует строку с ключом 157, и мы получаем исходную строку. Иными словани разшифровывается.
1.1) Мы вводим неверный ключ. Программа шифрует строку с неверным ключом. Ей без разницы, шифровалась эта строка ранее, или нет. Поэтому, чтобы получить исходную строку, нужно будет снова ввести тот самый неверный ключ, чтобы программа расшифровала строку до состояния *зашифрованная с ключом 157*, затем ввести верный ключ. Т.к. программа расчитана на ввод одного ключа, она вам выдаст получившуюся строку и завершит на этом свою работу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.12.2011, 14:25     Шифрация (С++)
Еще ссылки по теме:

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

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

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

Шифрация методом простой замены - C++ Builder
Такая проблема-недавно начал осваивать билдер, уже 5 часов туплю. Задача: есть два алфавита и словоНужно заменить буквы в слове по новому...

Шифрация и дешифрация по квадрату Полибия - C#
Реализовать шифрование и дешифрацию по Квадрату Полибия. Для выполнения используем русский алфавит. Как реализовать дешифрацию? Вот код...


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

Или воспользуйтесь поиском по форуму:
Deviaphan
Делаю внезапно и красиво
Эксперт C++
1286 / 1220 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
11.12.2011, 14:25     Шифрация (С++) #34

Не по теме:

Цитата Сообщение от Thinker Посмотреть сообщение

Не по теме:

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

Ну да, в байтах. Ведь шифруются байты и маска применяется именно к байтам.)



Добавлено через 1 минуту
Цитата Сообщение от soon Посмотреть сообщение
А что не так с cstring?
То, что std::string определена в хэдэре string, а cstring это аналог string.h.
Yandex
Объявления
11.12.2011, 14:25     Шифрация (С++)
Ответ Создать тему
Опции темы

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