Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Igoryawka

Шифрование методом перестановки с ключом

22.11.2012, 02:51. Показов 2928. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, форумчане.
Помогите пожалуйста.
Нужна помощь в написание программки, в которой будет вводиться текст (то, что хотим зашифровать), ключ шифрования, длина которого равна длине той самой строки.
Ключ - слово, каждую букву которого, мы должны сравнить с алфавитным порядком.
Например: Наш ключ - "эльф" = "4132".
Текст(слово), который мы хотим зашифровать нужно занести в двумерный массив и вывод столбцов будет осуществляться в порядке нашего ключа "4132".
Пример: 4132
инфо
рмац
ия. .
На выходе должны получить: нмяоц.фа.ири.

Вся проблема заключается в определение порядка букв в ключе и сортировка двумерного массива (поменять местами столбцы по возрастанию букв в ключе)

Вот впринципе, что сам смог сделать:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
AnsiString Key=Edit1->Text; // Слово-ключ
AnsiString slovo=Edit2->Text; // Текст для шифровки
AnsiString ABC="абвгдеёжзийклмнопрстуфхцчшщьыъэюя";
AnsiString A[100][100];
AnsiString ChKey;
int i=1;
int j=1;
int r=1;
int a=1;
float n=Key.Length(); // кол-во столбцов
float m=ceil(slovo.Length()/n); // кол-во строк
int point=0;
point=(n*m)-slovo.Length(); // количество необходимых точек
slovo=slovo+AnsiString::StringOfChar('.',point);
ShowMessage(slovo);
for (i=1; i<=ABC.Length(); i++)
for (j=1; j<=Key.Length(); j++)
if (Key[j]==ABC[i])
{
ChKey[r]=i;
r++;
}
for (j=1; j<=Key.Length(); j++)
Label1->Caption=Label1->Caption+IntToStr(ChKey[r]);
/*
//заполняем двумерный массив нашим шифруемым текстов(словом)
for (i=1; i<=m; i++)
for (j=1; j<=n; j++)
{
A[i][j]=slovo[a];
a++;
}
//вывод двумерного массива
for (i=1; i<=m; i++)
{
for (j=1; j<=n; j++)
Memo1->Text=Memo1->Text+A[i][j];
{
Memo1->Lines->Add("");
}
}
//вывод двумерного массива
for (j=1; j<=n; j++)
for (i=1; i<=m; i++)
Label3->Caption=Label3->Caption+A[i][j];
Буду признателен за любую помощь!
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.11.2012, 02:51
Ответы с готовыми решениями:

Шифрование методом перестановки
Народ пишу программу шифрования не могу сделать чтобы был введен ключ по которому будет генерироваться шифр помогите пожалуйста:) ...

Шифрование методом указания перестановки
Здравствуйте! Есть такое задание: зашифровать текст путём указания порядка перестановки символов в заданном порядке. т.е. - если...

Битное шифрование с ключом
Как работает битное шифрование? Дайте пример, если не сложно Заранее спасибо

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.11.2012, 02:51
Помогаю со студенческими работами здесь

Реализовать функции шифровки и дешифровки методом перестановки битов
Здравствуйте, помогите пожалуйста с кодом программы: Даны текстовые файлы (ASCII файл, который состоит из любого количества строк,...

Шифрование методом подстановки
написать программу, обеспечивающую ввод произвольного открытого текста и выдачу шифрограммы, полученную методом подстановки, а также...

Шифрование методом Цезаря
Кто может дать код, который бы шифровал строку(str) Методом Цезаря? Заранее спасибо.

Шифрование кириллицы методом Цезаря
Вот код он шифрует только латиницу, можно ли переделать чтобы шифровало русские символы. void __fastcall TForm1::Button1Click(TObject...

Шифрование файла методом Вернама
Собственно кодирую текстовый файл методом Вернама и столкнулся с проблемой: уже в зашифрованном файле присутствуют символы SUB (которые...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru