|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|
Шифрование двух текстов09.03.2014, 22:03. Показов 2580. Ответов 15
Метки нет (Все метки)
Не могу понять,как составить программу для шифрования текста. Суть в том,что изначально есть какой то текст,пользователь вводит второй текст. Далее берётся по первому символу из обоих текстов,переводится в двоичный код по кодировке Ascii, затем поэтапно складываются разряды у этих символов. В итоге выводится зашифрованный текст. Объясните,пожалуйста,как сделать такую программу.
0
|
|
| 09.03.2014, 22:03 | |
|
Ответы с готовыми решениями:
15
Шифрование/дешифрование текстов по принципу шифра Плейфера Шифрование и дешифрование текстов одноалфавитным методом с задаваемым смещением (от 2 до 20) Шифрование текстов с использованием афинного шифра на ассемблере |
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
||||||
| 11.03.2014, 04:35 | ||||||
|
Вероятно, Вы имеете ввиду шифрование с помощью операции xor. Вот, для ознакомления Как работает функция XOR и что она делает? последние посты почитайте. А так, если даны две строки, исходная s и ключ k, пусть одинаковой длины, для простоты, то шифрование и расшифровка текста выглядят так:
1
|
||||||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|
| 16.03.2014, 14:27 [ТС] | |
|
А какого типа должны быть переменные s и k, а то у меня стоит string,но выдаётся ошибка: Операнды имеют неприводимые типы? Получается текст s вводит пользователь,а текст k является внешним текстовым файлом.
0
|
|
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
|
| 16.03.2014, 16:28 | |
|
Nekto86, не понял Вашего вопроса. xor может работать только с целыми или булевыми типами данных. Вы не выложили свой фрагмент кода, не могу сказать, в каком месте у Вас возникает невозможность приведения типов.
1
|
|
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
||||||
| 17.03.2014, 07:47 [ТС] | ||||||
|
У меня,на данный момент,сделано очень мало,а именно:
Добавлено через 1 час 0 минут Ну и далее в коде идёт операция case of для выяснения,с каким внешним текстовым файлом мы шифруем текст. Не могу понять,какого типа должна быть переменная k. Я считал,что это должен был быть файл и он у меня стоит,как k: file of string
0
|
||||||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|
| 18.03.2014, 11:00 [ТС] | |
|
Cyborg Drone, Получается,что у меня первый текст типа string,второй char,мне надо работать с каждой буквой каждого текста,до точки у первого текста,который вводит пользователь. Не могу понять,как это сделать.
0
|
|
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
||||||
| 18.03.2014, 14:52 | ||||||
Сообщение было отмечено Nekto86 как решение
Решение
Nekto86, ничего такого не получается. Вы не вполне верно поняли Ваше задание.
Для простоты рассуждений можно сказать, что любая текстовая строка представляет сообой массив из данных типа char. Далее. Первая строка, которую вводит пользователь, есть кодируемое сообщение. Вторая строка - ключ для кодирования/раскодирования сообщения. Пусть уже получены строка и строка-ключ. Код каждого символа строки необходимо сложить поразрядно по модулю 2 с кодом соответствующего символа строки-ключа. Если ключ по длине равен или больше длины строки, "складываются" символы с одинаковыми номерами (точнее, индексами) в строке и ключе. Если ключ короче строки, при превышении длины ключа ключ просто используется многократно. Так как при применении к какому-либо числу операции xor дважды с какой-либо константой получается снова исходное число, программа-кодер является и программой-декодером. Докуда шифруется сообщение: до точки в строке, строка целиком, текстовый файл целиком - лично мне по барабану. Сами напишете, что именно Вам нужно. Вот программа-пример, кодирует вводимую строку, выводит на печать зашифрованную строку, расшифровывает её и снова выводит на печать. Символы с кодом меньше пробела зашифрованной строки выводятся как "?", ну, или какой захотите более другой символ изберите, во избежание вывода на консоль всяких там звонков, табуляций, попытки запроса статуса и иже с ними. Разбирайтесь, не перпеттуум мобиле. Что неясно, спрашивайте.
1
|
||||||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|
| 18.03.2014, 17:28 [ТС] | |
|
Ну,я согласовал,что то,с каким текстом шифруется сообщение,определяется по 1 букве 5 слова,соответственно в папке с программой у меня 30 текстовых файлов,каждый называется соответсвующей ему буквой. Соответсвенно,если буква первая буква пятого слова Т,то открываться должен текстовый файл Т и шифрование сообщения должно происходить с ним.
Проверил вашу программу на ABC паскале, она выдала кучу вопросительных знаков и между ними,изредка,буквы.
0
|
|
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
||
| 18.03.2014, 17:54 | ||
|
И ещё: если шифруются файлы по файлам-ключам, то подумайте об варианте объявить эти файлы как file of byte, это упростит алгоритм кодека, и уж точно не нужно будет делать файлы-ключи ровно из одной строки.
1
|
||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
||||||
| 18.03.2014, 18:00 [ТС] | ||||||
|
Скорее всего неправильно составил,но у меня,на данный момент,получается вот так:
0
|
||||||
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
||||||
| 18.03.2014, 18:28 | ||||||
|
У Вас нет нигде чтения из файла-ключа. Программа алгоритмически неверная. Забыли написать
Добавлено через 2 минуты Да, ещё один непротык. После зашифровки файла как узнаете, каким ключом его раскодировать?
1
|
||||||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|||||||||||||||||||||
| 19.03.2014, 13:14 [ТС] | |||||||||||||||||||||
|
Cyborg Drone, На данный момент у меня всё вот так:
Даже ещё лучше сделал,осталось понять,как правильно оформить процедуру и должно работать:
И с оформлением процедуры я справился,и у меня остался один вопрос. Мне сказали,чтобы я сократил эти строки:
0
|
|||||||||||||||||||||
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
|||||||
| 19.03.2014, 13:41 | |||||||
|
ord - это вычисление порядкового номера значения перечисляемого типа. На примере byte: ord(45) = 45. Для char ord('c')=byte('c') - порядковый номер символа в таблице кодировки. Номера начинаются с 0. Так что, если вычесть из кода символа код символа "а" - получится, на сколько отличается код символа от кода "а". Я уже Вам писал:
1
|
|||||||
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
|
| 19.03.2014, 16:29 [ТС] | |
|
Cyborg Drone, А как же быть с английскими буквами?
0
|
|
|
Модератор
10435 / 5723 / 3405
Регистрация: 17.08.2012
Сообщений: 17,422
|
|
| 19.03.2014, 20:34 | |
|
Сначала определитесь с количеством ключей. Затем с помощью какой-либо функции отобразите всё множество печатных символов на множество ключей. Попутно решите, что делать, если в тексте нет пятого слова. Также подумайте, как определить, каким файлом ключа расшифровывать, если программа вдруг станет не учебной, а боевой. Ведь если у Вас есть зашифрованный текст, то первую букву пятого слова где ж взять?
1
|
|
|
0 / 0 / 1
Регистрация: 20.02.2014
Сообщений: 19
|
||||||||||||
| 26.03.2014, 19:04 [ТС] | ||||||||||||
|
Cyborg Drone, меня попросили переделать,чтобы шифруемое сообщение не вводилось,а было в текстовом файле. Я переделал,однако у меня перестало правильно шифроваться,не могу понять,где ошибка.
Исправил вот этот момент,но дешифровывается всё равно неправильно: Было:[
0
|
||||||||||||
| 26.03.2014, 19:04 | |
|
Помогаю со студенческими работами здесь
16
сравнение двух текстов Сравнение двух текстов С# Сравнение на схожесть двух текстов
Сравнение на схожесть двух текстов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|