Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 17.12.2016
Сообщений: 47

Расшифровка (перестановка по ключу)

15.04.2019, 17:04. Показов 5541. Ответов 3

Студворк — интернет-сервис помощи студентам
Здравствуйте! Мне нужно расшифровать тексты методом одиночной перестановки по ключу:
1. «АМЧЕМЮЕЕ_НТНМЛЕ,Ь_ЮВ_ШМДАТЕЕИЮЕ_Н_ТМСЬЗ С_ОШНЯ» (ключевое слово «ОСЕНЬ», размер таблицы 9 × 5).
2. «_ОВЯНВТИ_ЕМОНВ_ЕРО_КШЫВДАИЕЕЕСВ_НЛААЕ_А ЮЕГК,ТТОТ_СС_ОКЯ» (ключевое слово «ЛИНИЯ», размер таблицы 11 × 5).

У меня получилось расшифровать первый шифртекст, а вот второй - нет. Внизу есть рисунки. Странно, что неправильно делает расшифровку. У меня не получилось исправить, может Вы знаете как исправить и поможете? Буду благодарна.

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <stdio.h> 
#include <string.h> 
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
#pragma warning(disable : 4996)
void cipher(int i, int c);
int findMin();
char arr[1000][1000], emessage[1000], key[1000], temp[1000];
int k = 0;
int main() {
    setlocale(LC_ALL, "Russian");
    system("chcp 1251");
    char message[1000];
    int i, j, klen, flag = 0;
    int r, c, index;
    system("cls");
    printf("Введите ключ: ");
    fflush(stdin);
    gets_s(key);
    printf("Введите сообщение: ");
    fflush(stdin);
    gets_s(message);
    strcpy(temp, key);
    klen = strlen(key);
    k = 0;
    for (i = 0;; i++) {
        if (flag == 1)
            break;
        for (j = 0; key[j] != NULL; j++) {
            if (message[k] == NULL) {
                flag = 1;
                arr[i][j] = ' ';
            }
            else {
                arr[i][j] = message[k++];
            }
        }
    }
    r = i;
    c = j;
    for (i = 0; i < r; i++) {
        for (j = 0; j < c; j++) {
            printf("%c ", arr[i][j]);
        }
        printf("\n");
    }
    k = 0;
    for (i = 0; i < klen; i++) {
        index = findMin();
        cipher(index, r);
    }
    emessage[k] = '\0';
    printf("\nРасшифрованное сообщение: ");
    for (i = 0; emessage[i] != NULL; i++)
    if (emessage[i] != ' ')
        printf("%c", emessage[i]);
    printf("\n");
    _getch();
    return(0);
}
void cipher(int i, int r) {
    int j;
    for (j = 0; j < r; j++) {
        {
            emessage[k++] = arr[j][i];
        }
    }
}
int findMin() {
    int i, j, min, index;
    min = temp[0];
    index = 0;
    for (j = 0; temp[j] != NULL; j++) {
        if (temp[j] < min) {
            min = temp[j];
            index = j;
        }
    }
    temp[index] = 123;
    return(index);
}
Миниатюры
Расшифровка (перестановка по ключу)   Расшифровка (перестановка по ключу)  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.04.2019, 17:04
Ответы с готовыми решениями:

Расшифровка RSA по приватному ключу
Не могу сделать расшифровку RSA по приватному ключу. Вот то, что пытался сделать: public class RSAisfun { public static class Mp3...

Одиночная перестановка по ключу
Написать программу с Одиночная перестановка по ключу , в которой должны отображаться: исходная фраза, таблица, с помощью которой...

Одиночная перестановка по ключу
Помогите пожалуйста, Зашифруем фразу «СИСТЕМНЫЙ ПАРОЛЬ ИЗМЕНЕН» с помощью таблицы размером 4х6 и ключевого слова «СКАНЕР». Для...

3
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
15.04.2019, 19:36
Лучший ответ Сообщение было отмечено LALA_97 как решение

Решение

Похоже, что у вас ошибка во втором ключе.
Как я понимаю, в ключе все символы должны быть уникальными, а у вас буквы повторяются.
Правильный ключ, например, "24135".
1
0 / 0 / 0
Регистрация: 17.12.2016
Сообщений: 47
15.04.2019, 20:05  [ТС]
Спасибо, я нашла ошибку. Ошибка была в том, что преподаватель дал не тот ключ. Он не соответствует данному шифру. Должен быть 24135, а он задал "линия" (31425).
0
0 / 0 / 0
Регистрация: 17.12.2016
Сообщений: 47
15.04.2019, 20:37  [ТС]
Ой, не то. Должен быть по ключу "линия" (31425) , а компьютер вычитывает так 24135.
Ошибка все равно
Миниатюры
Расшифровка (перестановка по ключу)  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.04.2019, 20:37
Помогаю со студенческими работами здесь

Однострочная перестановка по ключу
В верхней строке ее записан ключ, а номера под ключом определены по случайному порядку. Если в ключе встретились одинаковые буквы, они бы...

Двойная перестановка по ключу
Здравствуйте. Может кто поделиться наработками касаемо алгоритма двойной перестановки по ключу на C#? Массивы всегда были моей больной...

Двойная перестановка по ключу с таблицами
Пусть дано сообщение “Сегодня новый день”. Сначала в таблицу записывается текст сообщения, а потом поочередно переставляются столбцы, а...

Шифрование - Одиночная перестановка по ключу
Требуется Зашифровать - Расшифровать данное сообщение (Столяров Пахом Аднреевич) с помощью одиночной перестановкой по ключу. (Заранее...

Двойная табличная перестановка по ключу
Задание такое - реализовать программу шифрования и дешифрования текста методом двойной табличной перестановки. Для обеспечения...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru