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

Шифрование. Дешифрование по N. И по коду

11.09.2017, 16:55. Показов 917. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написать программу по шифрованию, дешифрованию. Можно их выделить в функции. Сам пример шифрования.
Пользователь вводит текст: ПРОГРАММА
Дальше пользователь вводит N- значение, на которое делится слово(фраза)
N : 4;
Слово(фраза) делится на 4 символа: ПРОГ РАММ А
Дальше пользователь вводит код к этим 4 символам,например:
Код: 3214
Программа должна вывести: ОРПГ МАРМ А
Если число символов < N, можно оставить без изменения, либо произвести реверс этой части.

Заранее благодарен на любую вашу помощь.

Так-же есть код на реверс шифрование может кому-то поможет)
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
#include <iostream>
 
void rebuild_string (char* str, int l)
{
    if (l != 0)
    {
         char* temp = new char [l+1];
         memset (temp, 0, l+1);
         for (int i=0, j=l-1; i<l, j>=0; i++, j--)
              temp [i] = str [j];
         for (int i=0; i<l; i++)
              str [i] = temp [i];
         delete []temp;
    }
}
 
void encode (char *str, int N)
{
    int packets = strlen (str) / N;
    char packets_arr [packets+1] [N+1];
    for (int i=0; i<packets; i++)
         for (int j=0; j<N; j++)
              packets_arr [i][j] = str [i*N+j];
    
    int end_packet = strlen (str) - (packets * N);
    char end_packet_arr [end_packet];
    for (int i=0; i<end_packet; i++)
         end_packet_arr [i] = str [i+packets*N];
    end_packet_arr [end_packet] = 0;
    
    for (int i=0; i<packets; i++)
         rebuild_string (&packets_arr [i][0], N);
    rebuild_string (&end_packet_arr [0], end_packet);
    
    int k = 0;
    for (int i=0; i<packets; i++)
         for (int j=0; j<N; j++)
         {
              str [k] = packets_arr [i][j];
              k ++;
         }
    for (int i=0; i<end_packet; i++)
    {
         str [k] = end_packet_arr [i];
         k ++;
    }
}
 
int main ()
{
    char str [] = "straustrup";
    std::cout << str << std::endl;
    
    int N;
    std::cout << "N -> ";
    std::cin >> N;
    
    encode (str, N);
    std::cout << str << std::endl;
    
    system ("pause");
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.09.2017, 16:55
Ответы с готовыми решениями:

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

Шифрование и дешифрование в VB
Здравствуйте, можете Вы мне помочь с шифрованием и дешифрованием в Visuai Basic? Так же у меня есть готовый код в Visual Studio,может быть...

Шифрование и Дешифрование в Qt C++
Здравствуйте. Первый раз на этом форуме, обычно ответы все и так находил, но тут пришлось все-таки задать. Есть у меня программа, которая...

5
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
11.09.2017, 20:27
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
#include <iostream>
#include <string>
#include <algorithm>
 
typedef std::string::size_type size_type;
 
std::string& de_en_cryption(std::string &e_str, size_type N, size_type key)
{
    if (e_str.length())
    {
        const std::string str_key(std::to_string(key));
        size_type index;
        for (index = 0U; (index + N - 1U) < e_str.length(); index += N)
        {
            for (size_type j(0U), count(0U);
                j < (str_key.length() / 2U) && count < N;
            ++j, ++count)
            {
                std::swap(e_str[index + count],
                    e_str[index + (std::stoi(str_key.substr(j, 1U)) - 1U)]);
            }
        }
        std::reverse(e_str.begin() + index, e_str.end());
    }
    return e_str;
}
 
int main()
{
    const size_type N(4U);
    const size_type key(3214U);
    std::string str("PROGRAMMA");
    std::cout << de_en_cryption(str, N, key) << std::endl;
    std::cout << de_en_cryption(str, N, key) << std::endl;
}
0
2 / 2 / 2
Регистрация: 11.10.2016
Сообщений: 123
12.09.2017, 14:45  [ТС]
anapshy, 11,20 строчка выдаёт ошибку
0
 Аватар для anapshy
531 / 272 / 220
Регистрация: 14.11.2016
Сообщений: 1,052
12.09.2017, 16:12
Elllik, все отлично работает http://rextester.com/PGKT30974
0
2 / 2 / 2
Регистрация: 11.10.2016
Сообщений: 123
12.09.2017, 17:56  [ТС]
anapshy, А без библиотеки алгоритмов это возможно осуществить?
0
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
12.09.2017, 18:01
создано во фрилансе, здесь закрыто.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.09.2017, 18:01
Помогаю со студенческими работами здесь

Шифрование, дешифрование
Помогите пожалуйста.) Компания хочет передавать данные по телефону, но она обеспокоена возможностью телефонного перехвата. Все...

Шифрование\Дешифрование
Необходимо зашифровать данные и записать то что получилось в БД. Затем при определенных условиях нужно вытащить запись из БД и...

Шифрование/Дешифрование
Не получается выполнить последний пункт на Дешифровании(после замены) превратить цифры с буквы. Подскажите алгоритм пожалуйста. Именно этой...

Шифрование и дешифрование
Прошу помощи экспертов(с комментариями,пожалуйста ) Задача : Метод шифровки текста с помощью ключевого слова. Пронумеруем буквы...

Шифрование и дешифрование
Помогите написать программу, которая будет шифровать и дешифровать матррицу.


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

Или воспользуйтесь поиском по форуму:
6
Закрытая тема Создать тему
Новые блоги и статьи
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/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru