Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2009, 14:36   #1
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
Вопрос Шифрование текста XOR'ом

Пишу программу на C#, нужно зашифровать текст из переменной сринг ксором. Как это реализовать, подскажите, пожалуйста.
Код:
int key;
string text, code;
code = text ^ key; //не подходит, жалуется на то что стринг и инт разные типы.
Как реализовать шифрование в данном случае? Предполагаю, что нужно перевести строку в бинарный код, но как это сделать?
nec117 вне форума Ответить с цитированием
Старый 05.12.2009, 14:40   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

строка состоит из символов, каждый символ уже представлен бинарным кодом, так что строку никак переводить ни во что не надо. Важно, чтобы text и code обладали одинаковой длиной, тогда:
Код:
for(int i = 0; i < text.length(); i++) {
    code[i] = text[i] ^ key;
}
Так это будет выглядеть на C++, думаю аналогию с C# провести не составит труда
netrino вне форума Ответить с цитированием
Старый 05.12.2009, 14:50   #3
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Хм.. Всё равно не работает. Выдаёт: Error 2 Cannot implicitly convert type 'int' to 'char'. An explicit conversion exists (are you missing a cast?)
nec117 вне форума Ответить с цитированием
Старый 05.12.2009, 15:03   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

А что мешает привести его к нужному типу?) Или объявить ключ как char
netrino вне форума Ответить с цитированием
Старый 05.12.2009, 15:14   #5
NiCola999
Не
Участник клуба
 
Регистрация: 29.10.2009
Сообщений: 1,456
По умолчанию

не очень знаю C# , но это будет выгляеть примерно так =)
Код:
class Code
{
    static void Main()
    {
        string str="hello world";
        string str_code="";
        char key = 123;
        for(int i=0; i<str.lenght; i++) {
                     str_code+=str[i]^key;
        }
        System.Console.WriteLine(str_code);
    }
}
NiCola999 вне форума Ответить с цитированием
Старый 05.12.2009, 15:18   #6
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

как чар объявить ключ нельзя, слишком длинный, привожу к стрингу всё тоже самое.
nec117 вне форума Ответить с цитированием
Старый 05.12.2009, 15:21   #7
nec117
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 266
По умолчанию

Да, согласен, так, но почему то жалуется, на тип ключа и строки, когда делаю все int, то работает.
nec117 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Побуквенное шифрование текста! Gauss Общие вопросы Delphi 11 23.08.2013 19:14
Шифрование текста XOR'ом nec117 Общие вопросы .NET 8 22.12.2009 17:53
Шифрование текста по методу Цезаря с лозунгом (с ключевым словом) SASHA19 Помощь студентам 3 11.10.2009 15:18
Шифрование\дешифрование текста на Паскале smoke007 Помощь студентам 2 17.10.2008 11:34
Шифрование текста SoundMan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 15.08.2008 22:39