|
0 / 0 / 0
Регистрация: 27.02.2009
Сообщений: 14
|
|
Курсовая: шифрование текста.18.05.2009, 08:17. Показов 9055. Ответов 7
Метки нет (Все метки)
Здравствуйте. В связи с рядом причин(главная конечно лень xD ), свою курсовую я умудрился взять только сейчас. Сдача через 2 недели. Собственно, в этой теме я буду пробовать ее сделать и прошу помощи и критики .)
Так как в программировании я не силен, поэтому по возможности буду стараться использовать чужой код, доработанный до моих грязных нужд ж) Итак, тема курсовой работы - шифрование и дешифровка текстовой строки. Мои идеи по этому поводу: пока что в качестве алгоритма я выбрал Шифр Гронсфельда, если я правильно помню. Его суть - имеется файл рандомных чисел (key.txt) примерно на пару мегабайт, который раздается двум людям - отправителю и получателю. При шифровке текста к номеру каждой буквы последовательно прибавляется по числу из имеющегося файла и получившиеся буквы записываются в новый файл.(Т.е. допустим, что в нашем файле key.txt такая строка: 123456789, а в файле, который нужно зашифровать - абя. В итоге, мы имеем - номер а=1, на выходе - 1+1=2=б. Номер б=2, на выходе - 2+2=4=г. Номер я=33, на выходе - 33+3=36; 36-33(чтобы начать алфавит сначала)=3=в. В конечном файле - бгв. При дешифровке - обратный процесс. Причем после шифровки\дешифровки из файла-ключа вырезаются использованные символы. Т.е. В итоге, он будет выглядеть так: 456789). Как я вижу полную работу будущей программы: При запуске появляется меню вида: --------------------- |Создать ключ | --------------------- |Зашифровать файл | --------------------- |Дешифровать файл| --------------------- При выборе первого пункта, программа создает файл key.txt весом в пару мегабайт. При выборе второго пункта, программа просит указать шифруемый файл и key.txt, после чего по описанному мной алгоритму, шифрует файл и вырезает из key.txt "использованные" числа. При выборе третьего пункта - программа просит указать дешифруемый файл и key.txt, послу чего дешифрует и опять же вырезает "использованные" числа из key.txt. Основные мысли и наработки я собираюсь постить сюда чуть позже, а пока что пара мелких идей и замечаний, скорее для себя.): 1) Я вообще не знаю, как работать с меню. В это нужно будет пофтыкать. 2) При шифровке нужно что-то делать с пробелами. Или ничего .) 3) В 1м пункте меню желательно сделать запрос на размер\количество символов создаваемого файла. Ну и конечно, если у кого-то есть готовые части\идеи - прошу поделиться .)
0
|
|
| 18.05.2009, 08:17 | |
|
Ответы с готовыми решениями:
7
Курсовая программа "Шифрование текста 5 алгоритмами" Шифрование текста, табличная замена текста Шифрование текста |
|
27 / 27 / 10
Регистрация: 29.04.2009
Сообщений: 90
|
|
| 18.05.2009, 09:31 | |
|
если не обязательно делать консольное приложение сделай mfc приложения (в ms vc) или просто windows приложение если разработка будет в borland c++, там ни чего сложного дело пары минут.
Добавлено через 2 минуты 7 секунд да есть готовые классы для шифрования текста (тебе наверно нужено синхронное шифрование). Уточни конкретно на чем будешь писать будет легче помочь.
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 18.05.2009, 10:18 | ||||||
сначала нужно дойти до дна, а дно там на зашифровывании одной буквы и расшифровывании, потом со дна подниматься наверх - тогда пойдёт дело чтобы накрыть дом крышей, сперва нужно заложить фундамент сперва нужна функция, которая принимает символ ключа, символ и возвращает полученный из них код, на ней построишь кодирование символьной строки по ключевой строке (файлы можно будет читать построчно и подавать строки на кодирование по строкам) и это для шифрования только (если не будешь заморачиваться с передачей указателя на функцию в функцию (такая тема используется в qsort, когда в функцию передаётся указатель на функцию сравнения), надо будет написать две функции: одну для шифрования строки, другую - для расшифровки) так было бы очень удобно написать одну функцию обработки строки по строке, а внутрь передавать указатель либо на функцию шифрования символа, либо на функцию дешифрования символа (но походу придётся две функции писать, судя по плану программы, можешь не потянуть указатели (особенно вдруг переделать там чего-нибудь потом или добавить - попадёшь)) чтение и запись для шифрования и дешифрования проводится одинаково (выбирается лишь функция обработки строки по строке)
0
|
||||||
|
27 / 27 / 10
Регистрация: 29.04.2009
Сообщений: 90
|
|
| 18.05.2009, 10:39 | |
|
примерно так
char shifr(char bukva, int chislo, int oper) oper = 1 - шифрование oper = -1 - дешифрация Да при подходе что я(33)+3=36 36-33=3(в) обратно так в(3)-3=0 33-0=33(я) в проге объядинить строки 36-33 и 33-0 легче всего так mod(rez-33), где mod это модуль числа. да вообще ограничиваться 33 символами весьма странно, лучше ограничиться 256 (от 0 до 255) и брать номер символа в соответствии с его номером в таблице ASCII (есть насколько помню стандартная функция)
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 18.05.2009, 10:49 | |
|
тут пример, как можно, юзая одну функцию, менять её свойства с помощью функций, передаваемых в неё
0
|
|
|
27 / 27 / 10
Регистрация: 29.04.2009
Сообщений: 90
|
|
| 18.05.2009, 11:03 | |
|
ИМХО при синхронном шифровании можно просто сделать это в 2 функциях: 1) чтение символа из исходного файла и запись его после шифровки/дешифровки в другой файл 2) шифрование/дешифровка символа
Для 1-ой функции при шифровки и дешифровки меняем просто местами исходный и выходной файл, а для 2-ой смотри мое сообщение выше. Просто мне кажется так проще и преподаватель будет меньше придераться (хотя это зависит от преподавателя и его отношения к данному студенту)
0
|
|
|
0 / 0 / 0
Регистрация: 27.02.2009
Сообщений: 14
|
||||||
| 03.06.2009, 07:28 [ТС] | ||||||
|
Здравствуйте ещё раз. Извиняюсь за долгое отсутствие - сдохла видюха на компе, жду зарплаты, дабы купить новую .)
Насчет срока - уже в принципе курсовая просрочена, самый крайний срок - 23 июня. Зарплату дадут числа 15 так ж) Пока что буду писать курсовую в универе\интернет-кафе\у друзей. Писать буду на с++, консольном. Ибо весь семестр проходили именно его .) Основные идеи: мне уже не до вылизанного кода, поэтому буду делать все элементарно, благо препод не придирчив. Работает - и то хорошо .) Менюшку буду делать через if-then-else. Т.е. Будет выдавать примерно такое: "1) Создать ключ 2) Зашифровать 3) Дешифровать Пожалуйста, введите номер действия:" Это не сильно красиво и удобно, но для моих кривых рук - самое то %) Далее. Сам шифратор\дешифратор будет работать элементарно - брать символ из файла, добавлять к его номеру число из ключа и так далее. Дешифратор соответственно обратно. Сделаю это двумя функциями пока, ибо пока что нужно как можно быстрее.) Ну собственно пока все, буду делать потихоньку. Так, вот ещё немного... Я нашёл в соседней теме по паскалю алгоритм:
На этом пока все.)
0
|
||||||
|
0 / 0 / 0
Регистрация: 01.11.2010
Сообщений: 11
|
|
| 22.12.2010, 22:19 | |
|
Это на Раskal, а как на С++ перевести?
0
|
|
| 22.12.2010, 22:19 | |
|
Помогаю со студенческими работами здесь
8
Шифрование текста Простое шифрование текста Шифрование текста в файле Шифрование и дешифрование текста Шифрование текста. XOR Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|