Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 204, средняя оценка - 4.63
t01001
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 19
#1

Шифрование методом перестановки - C++

16.12.2011, 02:31. Просмотров 29444. Ответов 36
Метки нет (Все метки)

Здравствуйте уважаемые!

Прошу помощи в написании программы. Пробывал писать сам, но чего то не туда пошел.

Буду очень признателен если поделитесь своим опытом.

вот задание:

"программно реализовать метод шифрования «перестановка». Программа должна получать открытый текст и ключ согласно варианту, шифровать открытый текст и дешифровать шифротекст. Шифрованный и дешифрованный текст должны отображаться на экране. "

Длинна блока (ключа): 5

Генерация ключа: Вручную

Ввод открытого текста: из файла
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2011, 02:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Шифрование методом перестановки (C++):

Шифрование методом перестановки на C++ - C++
Дана строка. Зашифровать ее следующим методом: строка вписывается в таблицу размера NхM по строкам, а результат считывается по столбцам ...

Шифрование методом перестановки - C++
люди помогите пожалуйста я сделал программу на Си "шифт перестановки" а препад говорит что ему только на С++ сдавать а я С++ вообще не знаю...

Шифрование методом простой перестановки - C++
Друзья, у кого-нибудь есть код или кто-нибудь может помочь с шифровкой методом простой перестановки. Например, берем слово АУДИТОРИЯ....

Шифрование/дешифрование файлов методом перестановки - C++
Необходимо разработать программу для шифрования/дешифрования файлов методом перестановки. Размер блока 11 байт.Так же в программе ...

Шифрование методом перестановки символов в заданном порядке - C++
Здравствуйте уважаемые знатоки. Помогите пожалуйста. Мне нужен код(разобраться не могу)%-) шифрования.Пример: 1.вводим: привет 2.задаём...

Шифрование файлов методом перестановки с двумя ключевыми словами - C++
Здраствуйте ! Необходима программы или её исходник. Суть программы состоит : шифрование файлов методом перестановки с 2умя ключевыми...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
eks
0 / 0 / 0
Регистрация: 21.01.2012
Сообщений: 6
20.02.2013, 09:42 #16
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Вот простенько на плюсиках
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
#include <iostream>
#include <fstream>
#include <string>
#include <conio.h>
using namespace std;
 
string encode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, encstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout<<"Error open file : "<<fPath.c_str()<<endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout<<"input string : "<<text.c_str()<<endl;
        for(i = 0; i < text.length(); i += lSize)
        {
            line = "";
            for(j = 0; j < lSize; j++)
                line += text[i + j];
            for(j = 0; j < lSize; j++)
                encstr += line[lKey[j]];
        }
    }
    return encstr;
}
 
string decode(long lSize, long * lKey, string fPath)
{
    long i, j;
    string text, line, decstr;
    ifstream ifs(fPath.c_str());
    if(!ifs)
        cout<<"Error open file : "<<fPath.c_str()<<endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout<<"input string : "<<text.c_str()<<endl;
        decstr = text;
        for(i = 0; i < text.length(); i += lSize)
        {
            for(j = 0; j < lSize; j++)
                decstr[i + lKey[j]] = text[i + j];
        }
    }
    return decstr;
}
 
int main()
{
    char chr;
    long lKey[5] = {0};
    long i, lSize= sizeof(lKey)/sizeof(lKey[0]);
    
    bool bMenu = true;
    string text;
    while(bMenu)
    {
        cout<<"***MENU***\n";
        cout<<"E - encode\n";
        cout<<"D - decode\n";
        cout<<(chr = getch())<<endl;
        switch(toupper(chr))
        {
        case 'E':
            cout<<"Enter key-block : \n";
            for(i = 0; i < lSize; i++)
            {
                cout<<"KEY["<<i + 1<<"] = ";
                cin>>lKey[i];
            }
            text = encode(lSize, lKey, "encode.txt");
            cout<<"Encoded text : "<<text.c_str()<<endl;
            break;
        case 'D':
            cout<<"Enter key-block : \n";
            for(i = 0; i < lSize; i++)
            {
                cout<<"KEY["<<i + 1<<"] = ";
                cin>>lKey[i];
            }
            text = decode(lSize, lKey, "decode.txt");
            cout<<"Decoded text : "<<text.c_str()<<endl;
            break;
        default:
            cout<<"Unsupported key is pressed\n";
            break;
        }
        cout<<"Press Y for see MENU once again\n";
        cout<<"Any other key - EXIT\n";
        cout<<(chr = getch())<<endl;
        if(toupper(chr) != 'Y')
            bMenu = false;
        system("cls");
    }
    system("pause");
    return 0;
}
А может кто-то набросать блок-схему к данной программе?
ming_ruport
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 6
20.02.2013, 12:03 #17
Это Шифр Цезаря.
ryseldude
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 5
07.10.2013, 13:32 #18
-=ЮрА=-, пасиб, очень помог =)
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
01.03.2014, 21:00 #19
Здравствуйте! Скажите пожалуйста из за чего может возникать данная ошибка. Уже неделю с ней продолбался.Компилируеться без ошибок, а вот при выполнении выполнении вылетает. Когда отслеживал пошагово , работа останавливаеться на данной строке уже после обработки все строки
C
1
           encstr += line[lKey[j]];
Текст ошибки
Debug Assertion Failed
Expression: string subscript out of range
Вроде ошибка была пропала, когда заметил что в строке line =""; было так , сделал так line =" "; и ошибка пропала. Но потом опять появилась. Вообшем мистика какая то. Прошу помочь с данной проблемой. Буду очень благодарен.
P.S. Если надо могу скинуть скриншот ошибки

вот скриншот
Шифрование методом перестановки
-=ЮрА=-
Заблокирован
Автор FAQ
01.03.2014, 21:18 #20
Slava_dk, загрузи проект (удали из него ncb файл и папки Debug/Release), предварительно думаю у тебя проблема с кодировкой проекта
alkagolik
Заблокирован
01.03.2014, 21:19 #21
Цитата Сообщение от Slava_dk Посмотреть сообщение
Expression: string subscript out of range
мало?
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
01.03.2014, 21:44 #22
хорошо, сейчас попробую

Добавлено через 1 минуту
-=ЮрА=-, удалил то, что Вы сказали, ничего не изменилось

Добавлено через 2 минуты
alkagolik, "строка выходит за пределы диапазона" , но почему так происходит не понятно
alkagolik
Заблокирован
01.03.2014, 22:05 #23
выход за границы массива
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
01.03.2014, 22:09 #24
странно, а на 8ой студии на ноуте код до точки одинаков и все работает. На ПК 10я студия
-=ЮрА=-
Заблокирован
Автор FAQ
01.03.2014, 22:43 #25
Slava_dk, я просил загрузить архив с проектом в тему чтобы можно было проанализаровать код в отладчике а не гадать по скрину ошибки что не так в проекте
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
02.03.2014, 23:39 #26
-=ЮрА=-, http://www.fayloobmennik.net/3622455
-=ЮрА=-
Заблокирован
Автор FAQ
03.03.2014, 21:36 #27
Цитата Сообщение от Slava_dk Посмотреть сообщение
- написал
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
загрузи проект (удали из него ncb файл и папки Debug/Release),
, открываю архив и вижу папки дебаг релиз ипч, ладно. Теперь по коду что конкретно не понятно?Вот проект, всё работает.
Покажи скрином какой ввод осуществляешь, думаю производишь ввод чего то левого
Миниатюры
Шифрование методом перестановки  
Вложения
Тип файла: rar code_perestanovka.rar (11.7 Кб, 115 просмотров)
isaak
102 / 39 / 9
Регистрация: 17.10.2010
Сообщений: 658
04.03.2014, 22:27 #28
-=ЮрА=- все работает!
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
08.03.2014, 16:40 #29
-=ЮрА=-, Все, разобрался спасибо
Andrey_Prasol
0 / 0 / 0
Регистрация: 25.03.2014
Сообщений: 2
25.03.2014, 11:50 #30
t01001, привет, извени за беспокойство, можешь помочь пожалуйста... нужен код проги на С++ который с Txt файла берет данные (текст)и переводит каждую букву в определенную цыфру, Например - „МОЯ ПЕРВАЯ ШИФРОГРАММА” буде у
зашифрованому на табл.1 вигляді мати вигляд: „12 14 31 32 15 05 16 02 00 31
32 24 08 20 16 14 03 16 00 12 12 00”.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 11:50
Привет! Вот еще темы с ответами:

Шифрование методом перестановки с заданным ключом текста любой длины - C++
здравствуйте прошу помочь с исправлением кода #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std;...

Шифрование / дешифрование (метод перестановки символов) - C++
Здравствуйте.проблема такая:по варианту дали ключ и метод шифрования.похожие темы нашел но не то(( вернее начало нашел тут...

Нужна помощь (Шифрование с симметричными ключами методами перестановки) - C++
Незнаю что вообще тут такое но очень надо помогите) Шифрование методами (метод усложненной перестановки по таблице следующим шифром по...

Шифр пароля методом перестановки - C++
Ввожу пароль типа string(не char). Для шифрования пароля использую шифр Перестановки (матрица вычисляемой размерности, запись – по...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.03.2014, 11:50
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru