Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

вот задание:

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

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

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

Ввод открытого текста: из файла
0
Лучшие ответы (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умя ключевыми...

36
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;
}
А может кто-то набросать блок-схему к данной программе?
0
ming_ruport
0 / 0 / 0
Регистрация: 21.11.2011
Сообщений: 6
20.02.2013, 12:03 #17
Это Шифр Цезаря.
0
ryseldude
0 / 0 / 0
Регистрация: 26.05.2013
Сообщений: 5
07.10.2013, 13:32 #18
-=ЮрА=-, пасиб, очень помог =)
0
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. Если надо могу скинуть скриншот ошибки

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

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

Добавлено через 2 минуты
alkagolik, "строка выходит за пределы диапазона" , но почему так происходит не понятно
0
alkagolik
Заблокирован
01.03.2014, 22:05 #23
выход за границы массива
0
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
01.03.2014, 22:09 #24
странно, а на 8ой студии на ноуте код до точки одинаков и все работает. На ПК 10я студия
0
-=ЮрА=-
Заблокирован
Автор FAQ
01.03.2014, 22:43 #25
Slava_dk, я просил загрузить архив с проектом в тему чтобы можно было проанализаровать код в отладчике а не гадать по скрину ошибки что не так в проекте
0
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
02.03.2014, 23:39 #26
-=ЮрА=-, http://www.fayloobmennik.net/3622455
0
-=ЮрА=-
Заблокирован
Автор FAQ
03.03.2014, 21:36 #27
Цитата Сообщение от Slava_dk Посмотреть сообщение
- написал
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
загрузи проект (удали из него ncb файл и папки Debug/Release),
, открываю архив и вижу папки дебаг релиз ипч, ладно. Теперь по коду что конкретно не понятно?Вот проект, всё работает.
Покажи скрином какой ввод осуществляешь, думаю производишь ввод чего то левого
2
Миниатюры
Шифрование методом перестановки  
Вложения
Тип файла: rar code_perestanovka.rar (11.7 Кб, 119 просмотров)
isaak
103 / 40 / 9
Регистрация: 17.10.2010
Сообщений: 670
04.03.2014, 22:27 #28
-=ЮрА=- все работает!
0
Slava_dk
0 / 0 / 0
Регистрация: 11.12.2012
Сообщений: 14
08.03.2014, 16:40 #29
-=ЮрА=-, Все, разобрался спасибо
0
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”.
0
25.03.2014, 11:50
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). Для шифрования пароля использую шифр Перестановки (матрица вычисляемой размерности, запись – по...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Опции темы

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