Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование char - неправильная дешифровка / 16 сообщений из 16, страница 1 из 1
13.12.2015, 18:48
    #39126768
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Немного переделал чужой код, получилось так:
Код: plaintext
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.
#include <iostream>
#include <cstdlib>
#include <iomanip>
#include <fstream>
using namespace std;
	int main()
{
	setlocale (0, "");
    
     char str[] = "qwe";
    char key[] = "a2c";
 
	int tl = strlen(str);
	int kl = strlen(key);

    for(int i=0; i<tl; i++)
	{
		for (int j=0; j<kl; j++)
		{
       str[i] = str[i]+key[i];
		}
	}
        cout << str;
		cout << endl;

    
		for(int i=0; i<tl; i++)
	{
		for (int j=0; j<kl; j++)
		{
       str[i] = str[i]-key[i];
		}
	}
		cout << str;

	cin.get();
	cin.get();
	return 0;
	}



Работает, если изменять длину ключа, тоже работает, но если изменить сам текст, то шифрует, но при расшифровке какие-то непонятные символы.
...
Рейтинг: 0 / 0
13.12.2015, 20:30
    #39126799
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
В зависимости от кодировки (16 разрядный char или 8-ми разрядный) мы можем
получать различные побочные эффекты сложения.
...
Рейтинг: 0 / 0
14.12.2015, 15:20
    #39127417
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Какие будут предложения? Использовать что-то вместо char?
...
Рейтинг: 0 / 0
14.12.2015, 15:27
    #39127427
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Используй ^ (XOR) тогда нужен будет один алгоритм для шифрования и расшифровки, т.к.
Код: plaintext
1.
x ^ K ^ K == x
...
Рейтинг: 0 / 0
14.12.2015, 15:32
    #39127440
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Dima T, сложение в криптографии тоже используется. Только не простое а ПО-МОДУЛЮ.
...
Рейтинг: 0 / 0
14.12.2015, 15:46
    #39127468
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
maytonDima T, сложение в криптографии тоже используется. Только не простое а ПО-МОДУЛЮ.
XOR частный случай. По-другому он называется "сложение по модулю 2".
...
Рейтинг: 0 / 0
14.12.2015, 16:06
    #39127497
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Та же самая проблема. При расшифровке часть символов - не те.
...
Рейтинг: 0 / 0
14.12.2015, 16:14
    #39127510
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
ukugyul552465, приведи пожалуйста пример входа и выхода для твоего консольного приложения.

Иначе мы так очень долго будем ходить вокруг.
...
Рейтинг: 0 / 0
14.12.2015, 16:25
    #39127520
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
ukugyul552465
Код: plaintext
1.
       str[i] = str[i]+key[i];


Это так и задумывалось?
...
Рейтинг: 0 / 0
14.12.2015, 16:31
    #39127528
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Думаю да. Парень делает своего Цезаря.
...
Рейтинг: 0 / 0
14.12.2015, 17:26
    #39127589
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Dima Tukugyul552465
Код: plaintext
1.
       str[i] = str[i]+key[i];


Это так и задумывалось?

Нет.
Однако замена на j не помогает.

Текст-gwe
Зашифрован-?
Расшифрован-gwe

Текст-gwe55
Зашифрован-?5c
Расшифрован-gwe5?
...
Рейтинг: 0 / 0
14.12.2015, 17:26
    #39127592
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Как можно вот этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 for(int i=0; i<tl; i++)
	{
		for (int j=0; j<kl; j++)
		{
       str[i] = str[i]+key[i];
		}
	}


переделать по-человечески?
...
Рейтинг: 0 / 0
14.12.2015, 18:54
    #39127704
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
ukugyul552465Однако замена на j не помогает.
В двух местах поменял?
...
Рейтинг: 0 / 0
14.12.2015, 19:13
    #39127724
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
ukugyul552465Как можно вот этот код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 for(int i=0; i<tl; i++)
	{
		for (int j=0; j<kl; j++)
		{
       str[i] = str[i]+key[i];
		}
	}


переделать по-человечески?
Напиши так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 for(int i=0; i<tl; i++)
	{
		for (int j=0; j<kl; j++)
		{
       cout << "str[" << i << "] = str[" << i << "]+key[" << i << "];" << endl;
		}
	}


И добейся чтобы было так 18558234
...
Рейтинг: 0 / 0
14.12.2015, 19:53
    #39127745
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Вариант со сложением тоже в принципе работает. Только надо сумму двух chars "наполнить смыслом".

И не Цезать это а Виженнер. Ошибся я.
...
Рейтинг: 0 / 0
15.12.2015, 15:59
    #39128727
ukugyul552465
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Шифрование char - неправильная дешифровка
Всем спасибо, нашёл работающее решение.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Шифрование char - неправильная дешифровка / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]