Консультация № 191847
22.11.2017, 15:54
0.00 руб.
0 6 1
Здравствуйте, уважаемые эксперты! Прошу вас ответить на следующий вопрос:
Помогите пожалуйста в комментировании строк программы, исправьте если что-то не так и подскажите пожалуйста по какому принципу шифруется текст

public string coder(string str, int key)//класс, позволяющий работать нам со строками
{
byte[] text = new byte[str.Length];//Создание массива байтов данной строки(т.е. каждая буква в нашей строке разбивается на байты)
text = Encoding.Unicode.GetBytes(str);// Получает кодировку для формата UTF-16 с прямым порядком байтов и кодирует все символы в последовательности байтов
byte[] scrambled = new byte[text.Length];//сохранение перемешанных байтов символов в строке
for (int i = 0; i < text.Length; i++)//цикл(действие до начала цикла; условие продолжения цикла; действия в конце каждой итерации цикла- шаг цикла )
//тело цикла
{
scrambled[i] = (byte)(text[i] ^ int.Parse(tKey.Text));//преобразовывает строковое представление в эквивалетный ему текст с помощью ключа
}
return Encoding.Unicode.GetString(scrambled);//возвращаем строку из байтов
}

Обсуждение

давно
Мастер-Эксперт
325460
1469
22.11.2017, 16:28
общий
Адресаты:
Здравствуйте.

byte[] text = new byte[str.Length];//Создание массива байтов данной строки(т.е. каждая буква в нашей строке разбивается на байты)
создасется массив и выделяется память.


byte[] scrambled = new byte[text.Length];//сохранение перемешанных байтов символов в строке
в данной строчке создается массив scrambled и выделяется под него память. в который будут записываться преобразованные данные

остальное на мой взгля норм.
Об авторе:
to live is to die
давно
Посетитель
401498
2
22.11.2017, 17:32
общий
Цитата: CradleA
спасибо большое, а насчет принципа шифрования не подскажете?
давно
Мастер-Эксперт
325460
1469
23.11.2017, 10:12
общий
Адресаты:
У Вас шифрование обычным xor:

scrambled[i] = (byte)(text[i] ^ int.Parse(tKey.Text));//преобразовывает строковое представление в эквивалетный ему текст с помощью ключа

немного не понятно откуда берется tKey тут логичнее ыло бы
scrambled[i] = (byte)(text[i] ^ key;

хотя если tKey глобальная то все норм. но не понятно зачем есть входной параметр в функцию key.
Об авторе:
to live is to die
давно
Советник
400484
472
30.11.2017, 17:08
общий
Цитата: CradleA
хотя если tKey глобальная то все норм. но не понятно зачем есть входной параметр в функцию key.

Я предположил, что это текстовое поле... Хотя могу и ошибаться.
давно
Старший Модератор
312929
1973
01.12.2017, 04:00
общий
Адресаты:
Вы можете оформить свои сообщения как ответ.
давно
Мастер-Эксперт
325460
1469
01.12.2017, 13:31
общий
это ответ
Здравствуйте, mihailenko-vanya!


byte[] text = new byte[str.Length];//Создание массива байтов данной строки(т.е. каждая буква в нашей строке разбивается на байты)
создасется массив и выделяется память.


byte[] scrambled = new byte[text.Length];//сохранение перемешанных байтов символов в строке
в данной строчке создается массив scrambled и выделяется под него память. в который будут записываться преобразованные данные

scrambled[i] = (byte)(text[i] ^ int.Parse(tKey.Text));//преобразовывает строковое представление в эквивалетный ему текст с помощью ключа

немного не понятно откуда берется tKey тут логичнее ыло бы
scrambled[i] = (byte)(text[i]) ^ key;
Об авторе:
to live is to die
Форма ответа