Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Агоритм шифрования методом замены / 7 сообщений из 7, страница 1 из 1
18.05.2013, 11:12
    #38263102
asupviking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
Здравствуйте, вот так реализовал алгоритм шифрования методом замены. Находит и заменяет все символы кроме русских, а мне нужно что бы и русские находил. Я так думаю, что здесь проблема с кодировкой, объясните пожалуйста что делать.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
	char alfabetikal[62]={'а','б','в','г','д','е','ё','ж',
		'з','и','й','к','л','м','н','о','п','р','с','т','у',
		'ф','х','ц','ч','ш','щ','ъ','ы','ь','э','ю','я','a','b',
		'c','d','e','f','g','h','i','j','k','l','m','n','o','p',
		'q','r','s','t','u','v','w','x','y','z',' ','@','.'};
	
	char shifrogramma[300];	
	char shifr[62]={'9','h','g','c','n','8','7','y',
		'f','6','5','d','j','w','z','4','o','a','x','l','3',
		'v','m','r','k','b','s','t','@','q','2','1','0','ц','п',
		'ё','м','л','я','а','с','у','ф','ш','з','щ','й','г','к',
		'е','ж','в','и','б','о','р','д','н','и','.','#','@'};
	
	
	array<Char>^ str = textBox1->Text->ToCharArray();
	for (int i=0; i<str->Length; i++)
		{
			for (int j=0; j<62; j++)
				{
					if(str[i]==alfabetikal[j])shifrogramma[i]=shifr[j];
				}
		}
	textBox2->Text=gcnew String(shifrogramma);
...
Рейтинг: 0 / 0
18.05.2013, 12:59
    #38263177
С0ВЕСТЬ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
Есть золотое правило - Не изобретать свои "невзламываемые" шифры, а использовать проверенные
...
Рейтинг: 0 / 0
18.05.2013, 13:25
    #38263199
asupviking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
Хорошо, спрошу иначе, почему русские символы введённые в textbox, не находятся в массиве char (в данном случае alfabetikal)?
...
Рейтинг: 0 / 0
18.05.2013, 14:02
    #38263226
carrotik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
asupviking,

...вы сами правильно угадали, различные кодировки могут быть .. в текстбоксе по умолчанию Юникод, в массиве - Encoding.Default, например Win-1251 ... выведите коды символов из строки в текстбоксе и массиве и сравните ... Придется или конвертировать при сравнении, или заполнять массив через getBytes() или еще как ....
...
Рейтинг: 0 / 0
18.05.2013, 14:06
    #38263228
asupviking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
carrotik, спасибо, буду копать в этом направлении.
...
Рейтинг: 0 / 0
18.05.2013, 14:37
    #38263247
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
asupviking, переписал твой код и так он работает:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
using namespace System;
using namespace System::Text;
...
array<Char>^ alfabetikal = (gcnew String("абвгдеёжзийклмнопрстуфхцчшщъыьэюяabcdefghijklmnopqrstuvwxyz @."))->ToCharArray();
array<Char>^ shifr       = (gcnew String("9hgcn87yf65djwz4oaxl3vmrkbst@q210цпёмляасуфшзщйгкежвибордни.#@"))->ToCharArray();
	
String^ str = textBox1->Text;
StringBuilder sb(str);
for (int i=0; i<str->Length; ++i)
{
	for (int j=0; j<alfabetikal->Length; ++j)
	{
		if(str[i]==alfabetikal[j])
		{
			sb[i] = shifr[j];
			break;
		}
	}
}
textBox2->Text = sb.ToString();



На управляемом С++ программировать не приходилось, так что не уверен почему твой код не работал. Похоже что из-за смешения С++ и .NET типов. Надо везде использовать одинаковые.
...
Рейтинг: 0 / 0
18.05.2013, 15:33
    #38263277
asupviking
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Агоритм шифрования методом замены
bazile, спасибо!
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Агоритм шифрования методом замены / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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