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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.63
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
#1

Cоздать программу шифрования и дешифрования - C++

13.12.2011, 21:23. Просмотров 3045. Ответов 25
Метки нет (Все метки)

Ребят, сначала немного объясню ситуацию. Проболев пол семестра и увидев задание по курсовой, я немного вздрогнул и вздрагиваю до сих пор, т.к. ничего не получается, а завтра последний срок(

Задача такова: Символ кодируется номером строки и позицией символа в строке заданного текстового файла. Требуется создать программу шифрования и дешифрования. Ключ хранить в отдельном файле.
Может кто что подскажет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2011, 21:23     Cоздать программу шифрования и дешифрования
Посмотрите здесь:

Реализация алгоритма шифрования и дешифрования Serpent. C++
C++ Написать программу шифрования и дешифрования методом подстановки
C++ Программа шифрования\дешифрования
C++ Написать программу шифрования текста на C++ и параллельно на Паскале
C++ Составить программу для шифрования информации
Cоздать программу, которая бы принимала числа из файла выбирала из них нечетные и заносила бы в другой файл C++
Cоздать программу, записывающую ошибку в stderr c помощью exit() C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
13.12.2011, 22:06     Cоздать программу шифрования и дешифрования #2
Непонял =(

А ключ как используется?.. Это алгоритм шифрования перестановками символов?.. Или заменой алфавита?.. Если так - всё элементарно. Если нет - что ж... Даже бессонная ночь Вам вряд ли поможет. Впрочем - пишите... Помониторю тему пару часиков.
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
13.12.2011, 22:11  [ТС]     Cоздать программу шифрования и дешифрования #3
Суть заключается в том, чтобы заменить каждый символ на два числа(т.е. первое число - номер строки, второе - номер символа в тексте(номер позиции) а потом обратно раскодировать
более подробно не знаю, как объяснить
AncinetHero
49 / 49 / 3
Регистрация: 22.05.2011
Сообщений: 326
13.12.2011, 22:13     Cоздать программу шифрования и дешифрования #4
А как вы обратно раскодируете? Невозможно же, если будет дана только закодированная строка
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
13.12.2011, 22:18  [ТС]     Cоздать программу шифрования и дешифрования #5
Я тоже долго думал на эту тему, пришла только мысль, что бы куда-нибудь записывать символы, которые кодируешь
не знаю, как по-другому(
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
13.12.2011, 22:53     Cоздать программу шифрования и дешифрования #6
Цитата Сообщение от en0ugh Посмотреть сообщение
более подробно не знаю, как объяснить
Продемонстрируйте на примере.
sergey.shuvalov
-6 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 266
13.12.2011, 22:59     Cоздать программу шифрования и дешифрования #7
А нельзя ли символьный массив представить в виде двумерного символьного массива с дальнейшим преобразованием в числовой, где каждому символу соответствует два числа - номер строки и номер столбца ?
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
13.12.2011, 23:06  [ТС]     Cоздать программу шифрования и дешифрования #8
допустим, последовательность

qwerty
uiop

кодируем: номер строки, номер символа
1112131415
21222324

и т.д.
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
13.12.2011, 23:12     Cоздать программу шифрования и дешифрования #9
То есть, если у нас больше 10 символов в строке - возникает непонятки. Впрочем, элементарно держать счётчик и автоматически увеличивать длину кодона (блджад, биология? в общем, читай, "кодируемое слово" или как-то так =/ ). Вопрос в другом - что нам это даст?.. Было бы неплохо привести пример декодирования.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
13.12.2011, 23:12     Cоздать программу шифрования и дешифрования #10
Обе стороны имеют файл с символами, содержимое этого файла - и есть ключ.
Символы в сообщениях заменяются их расположением в файле-ключе, который имеют обе стороны.
Всё тривиально...
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
13.12.2011, 23:14     Cоздать программу шифрования и дешифрования #11
В задании сказано ключ хранить в отдельном файле. Тогда в принципе все элементарно становится. Создать текстовый файл с необходимым алфавитом. И просто сравнивать по но номеру строки и столбца. Чтобы было проще, можно сделать массив в файле 9х9.
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
13.12.2011, 23:22  [ТС]     Cоздать программу шифрования и дешифрования #12
так, много советов, но ничего из этого пока не получается воплотить, можно более подробную инструкцию?
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
13.12.2011, 23:31     Cоздать программу шифрования и дешифрования #13
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Обе стороны имеют файл с символами, содержимое этого файла - и есть ключ.
Символы в сообщениях заменяются их расположением в файле-ключе, который имеют обе стороны.
Всё тривиально...
Нет, я решительно ничего не понимаю =/
Если есть файл с символами - зачем тогда вообще шифрование? Just for fun?..
И что за файл с символами?.. Я лично вот, не понял как будем дешифровать...

Добавлено через 7 минут
Итак, что мы имеем сейчас? Мы имеем странную хрень (простите) - мы тупо заменяем каждый символ его координатами. Теперь, понять бы что из себя представляет ключ...
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
13.12.2011, 23:31     Cоздать программу шифрования и дешифрования #14
AnyOne697, эмммм... есть файл, в котором хранится массив символов, порядок которого известен только программисту. При шифровании символ из шифруемого слова ищется в этом массиве и заменяется на число, например, номер строки + номер столбца, или номер строки * 10 + номер столбца. При дешифровке просто это число разбивается на две части, которые являются номером строки и номером столбца, и просто по эти данным берется символ из массива который находится в файле-ключе. Это ведь простое задание для ознакомления а не для реального использования.
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
14.12.2011, 01:23     Cоздать программу шифрования и дешифрования #15
Цитата Сообщение от Toshkarik Посмотреть сообщение
есть файл, в котором хранится массив символов, порядок которого известен только программист
Если он известен программисту, значит он известен и мне. Особенно, если программист пишет на C++/C#/Java. Даже если он использует инструменты рефакторинга они никак не повлияют на содержимое констант (ибо рефакторинг - не шаманство).
Вот что за народ пошёл?.. На десятый раз перепрочтения дошло!

Только автор топика хочет чего-то другого. Или именно этого?.. По крайне менее с примером не сходится. Кстати, то что вы назвали по сути - не что иное, как замена алфавита. Не более и неменее. Разве только сомнительная арифметика. Ну да ладно...
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
14.12.2011, 01:36  [ТС]     Cоздать программу шифрования и дешифрования #16
в принципе, можно это назвать и "заменой алфавита"
если так это принципиально
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
14.12.2011, 03:10     Cоздать программу шифрования и дешифрования #17
Цитата Сообщение от AnyOne697 Посмотреть сообщение
Если он известен программисту, значит он известен и мне.
Просто тут не о шифровании речь. Имеется исходное сообщение, его надо закодировать. Cимвол кодируется двузначным числом, которое компактно садится в чар с помощью файла с кодами. Предполагается что у получателя такой же файл с кодами, с помощью которого он декодирует сообщение. Поскольку чар можно представить в виде матрицы 16х16 то максимальное закодированное число предполагается ff, конечно минимальное - 0. Это уже собственная кодировка. Можете как за основу взять таблицу ascii, транспонировать ее, добавить в пустые клетки кириллицу, например, и спомощью полученной матрицы кодировать\декодировать свои сообщения. И назвать это например my_utf8
en0ugh
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 7
14.12.2011, 03:15  [ТС]     Cоздать программу шифрования и дешифрования #18
alkagolik
правильные мысли излагает, только перевести бы их ещё на си, да ещё и в грамотной форме
alkagolik
1511 / 617 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
14.12.2011, 03:50     Cоздать программу шифрования и дешифрования #19
en0ugh, так в чем проблема? главное не забыть учесть в текством файле управляющие символы ОС. В идеале файл с кодами должен быть бинарый и матрицы в нем нет, она как бы виртуальная, в реальности есть массив размером 2^8. Строка i вычисляется делением на 16, а столбец j - остатком от деления. Символ кодируется так
C
1
unsigned char symb = (i << 3) | j;
а декодируется так
C
1
2
3
4
5
6
unsigned char buf[ 256 ];
fread(buf, sizeof(unsigned char), 256, file);
цикл
i = (symb >> 3);
j = symb & 0x0f;
deecode_symb = buf[ i * 16 + j ];
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2011, 09:10     Cоздать программу шифрования и дешифрования
Еще ссылки по теме:

Cоздать программу тестирования C++
C++ Дополнить программу шифрования и дешифрования методом одиночной перестановки по ключу
C++ Написать программу, реализующую алгоритм шифрования и дешифрования сообщения RSA
Я написал программу шифрования и дешифрования,но много ошибок, исправьте пожалуйста C++
Программа шифрования и дешифрования C++

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

Или воспользуйтесь поиском по форуму:
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
14.12.2011, 09:10     Cоздать программу шифрования и дешифрования #20
И всё так просто?.. Ну вот и славненько =)

Не понимаю, правда, чем Вам ASCII не устроила =) Нет, нет. Обучение - это замечательно. Но давать такие курсовые - сущий бред. Лучше бы простенький ftp-клиент написать или файловый менеджер с базовым набором функций (то, как - два окна просмотра файлов, копирование и перемещение между ними; удаление, переименовывание, создание пустого файла, открытие by ОС и, по-желанию, командной строкой; усё, а то что это, читай, far - всеми любимый файл-мэнеджер... ну... почти =) а как доставляет!). Ну да ладно. Студенту как об стенку и больше он к этой теме не вернётся. А зря...
Yandex
Объявления
14.12.2011, 09:10     Cоздать программу шифрования и дешифрования
Ответ Создать тему
Опции темы

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