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

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 204, средняя оценка - 4.63
t01001
0 / 0 / 0
Регистрация: 13.12.2011
Сообщений: 12
16.12.2011, 02:31     Шифрование методом перестановки #1
Здравствуйте уважаемые!

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

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

вот задание:

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

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

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

Ввод открытого текста: из файла
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
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
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
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 Кб, 99 просмотров)
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
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”.
Graas
 Аватар для Graas
0 / 0 / 0
Регистрация: 12.12.2014
Сообщений: 2
12.12.2014, 17:00     Шифрование методом перестановки #31
спасибо
omg_showTime
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 3
15.12.2014, 20:00     Шифрование методом перестановки #32
-=ЮрА=-, можешь помочь? исходный текст работает правильно, но когда я изменяю текстовый файл, на свой текст, вылазит та же ошибка, что и на скрине прерыдущем, тех файлов нет
-=ЮрА=-
Заблокирован
Автор FAQ
15.12.2014, 21:21     Шифрование методом перестановки #33
Цитата Сообщение от omg_showTime Посмотреть сообщение
-=ЮрА=-, можешь помочь? исходный текст работает правильно, но когда я изменяю текстовый файл, на свой текст, вылазит та же ошибка, что и на скрине прерыдущем, тех файлов нет
показывай что вводишь
omg_showTime
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 3
15.12.2014, 21:45     Шифрование методом перестановки #34
Код я немного приукрасил для своих целей

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
105
106
107
108
#include "stdafx.h"
#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 << "Ошибка при открытии файла: " << fPath.c_str() << endl;
    else
    {
        while(getline(ifs, line))
            text += line;
        ifs.close();
        cout << "Исходный текст: " << 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 << "Ошибка при открытии файла: " << fPath.c_str() << endl;
    else
    {
        while(getline(ifs,line))
            text += line;
        ifs.close();
        cout << "Исходный текст: " << 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()
{
    setlocale(LC_ALL, "Russian");
 
    char chr;
    long lKey[5] = {0};
    long i, lSize = sizeof(lKey) / sizeof(lKey[0]);
    
    bool bMenu = true;
    string text;
    while(bMenu)
    {
        cout << "***Меню***" << endl;
        cout << "E - Шифровка" << endl;;
        cout << "D - Дешифровка" << endl;
        cout << (chr = _getch()) <<endl;
        switch(toupper(chr))
        {
        case 'E':
            cout << "Введите ключ шифровки: " << endl;
            for(i = 0; i < lSize; i++)
            {
                cout << "Ключ[" << i + 1 << "] = ";
                cin >> lKey[i];
            }
            text = encode(lSize, lKey, "encode.txt");
            cout << "Дешифрованный текст: " << text.c_str() << endl;
            break;
        case 'D':
            cout << "Введите ключ шифровки: " << endl;
            for(i = 0; i < lSize; i++)
            {
                cout << "Ключ[" << i + 1 << "] = ";
                cin >> lKey[i];
            }
            text = decode(lSize, lKey, "decode.txt");
            cout << "Зашифрованный текст: " << text.c_str() << endl;
            break;
        default:
            cout << "Вы нажали неподдерживаемую клавишу!" << endl;
            break;
        }
        cout << "Нажмите Y для повторного вывода меню" << endl;
        cout << "Нажмите любую клавишу для выхода";
        cout << (chr = _getch()) << endl;
        if(toupper(chr) != 'Y')
            bMenu = false;
        system("cls");
    }
    system("pause >> null");
    return 0;
}
В первом файле "showtime" - encode
Во втором "owithsem" - decode

Ошибка:

http://fotohost.by/images/2014/12/15...6247bac023.jpg
-=ЮрА=-
Заблокирован
Автор FAQ
15.12.2014, 22:11     Шифрование методом перестановки #35
omg_showTime, какой ключ ты вводишь?
Миниатюры
Шифрование методом перестановки  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2014, 22:14     Шифрование методом перестановки
Еще ссылки по теме:

Шифрование / дешифрование (метод перестановки символов) C++
C++ Шифрование методом перестановки с заданным ключом текста любой длины
C++ Зашифровать текст методом простой одинарной перестановки

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

Или воспользуйтесь поиском по форуму:
omg_showTime
0 / 0 / 0
Регистрация: 15.12.2014
Сообщений: 3
15.12.2014, 22:14     Шифрование методом перестановки #36
http://fotohost.by/images/2014/12/15/321.jpg
Yandex
Объявления
15.12.2014, 22:14     Шифрование методом перестановки
Ответ Создать тему
Опции темы

Текущее время: 17:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru