![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
olga90 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 30.1.2007 Репутация: нет Всего: нет |
Мне нужно реализовать шифрование методом Цезаря
Вот задание: Задан массив, элементами которого являются буквы русскоязычного алфавита. Нужно получить новый массив, в котором буквы перестановлены случайным образом, и используя его зашифровать заданный текстовый файл. Буквы русскоязычного алфавита рассматриваем как массив, состоящий из 66 символов. Я обозначаю этот массив как Const
A[1]=А, A[2]=Б, …A[33]=Я … A[66]=я. Теперь я перемещаю в цикле исходный алфавит (например, на 2 символа) и получаю массив «B» для шифрации след. Образом
Т.е. после этого B[1]=A[3]=В, B[2]=A[4]=Г, … B[64]=A[66]=я, B[65]=A[1]=А, B[66]=A[2]=Б Т.е. массив B[66] должен теперь использоваться как ключ для шифрования А как теперь мне зашифровать текст из файла??? |
||||
|
|||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Ты описал как ты получаешь ключ для шифрования, но о том как именно тебе нужно зашифровать текстовый файл не сказал ни слова. ![]() Если нужно просто зашифровать, то поиск по форуму тебе поможет, а для начал посмотри вниз страницы. -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
olga90 |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 30.1.2007 Репутация: нет Всего: нет |
я же написала, что текст нужно зашифровать через полученный массив со смещением (массив B[i])
|
||||
|
|||||
WaterProof |
|
|||
![]() OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
Вот посмотри прогу в архиве. Кто-то давно просил сделать, я и сделал.. Может чем-нибудь поможет...
Присоединённый файл ( Кол-во скачиваний: 296 ) ![]() |
|||
|
||||
olga90 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 30.1.2007 Репутация: нет Всего: нет |
WaterProof, спасибо - щас посмотрю
А у тебя нет точно такого же только через массивы? Или строка(как в твоем примере) это и есть массив? |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
Читаешь букву из файла, находишь её номер (А=1,Б=2,В=3, итд) Допустим номер i. Потом делаешь i=(i+сдвиг) mod 36 Выбираешь из массива букву под индексом i и записываешь её в вывод. |
|||
|
||||
olga90 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 30.1.2007 Репутация: нет Всего: нет |
sergejzr, не поняла - можно пример
и почему делим именно на 36 ??? |
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
смотри модуль в аттаче. выдрано из JVCL.
там как раз класс TJvCaesarCipher. наверное то, что и нужно Присоединённый файл ( Кол-во скачиваний: 108 ) ![]() -------------------- There are always someone smarter than you... |
|||
|
||||
sergejzr |
|
|||
![]() Un salsero ![]() Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 1 Всего: 360 |
на 33 конечно, это опечатка Потому что в алфавите 33 букв. Пример?
ПС: Это макет. Паскаля хорошо не помню. если массивы в паскале начинаются с еденицы, то ессно надо соответственно подправить границы Добавлено @ 19:29 MetalFan, зачем человека большим количеством букв пугать? Там делов-то на пару строк. |
|||
|
||||
WaterProof |
|
|||
![]() OverLapped Профиль Группа: Участник Сообщений: 44 Регистрация: 13.10.2006 Где: Москва Репутация: нет Всего: нет |
olga90,
Строка это и есть массив символов. Все правильно... ![]() |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Для начала:
olga90, так обозначаються множества, а не массивы. Интересно, как у тебя такое вообще скомпилилось?? Вот моя реализация. В примере показана работа со строкой, но для файла думаю не трудно будет следать.
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
olga90 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 30.1.2007 Репутация: нет Всего: нет |
Sunvas, спасибо - то что нужно
![]() |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |