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

Перевод алгоритма XOR с C# на C++ - C++

Восстановить пароль Регистрация
 
LittleBuster
5 / 5 / 1
Регистрация: 14.10.2010
Сообщений: 104
07.10.2012, 16:16     Перевод алгоритма XOR с C# на C++ #1
Попытался перевести алгоритм XOR шифрования с шарпа на плюсы, при расшифровке выдаёт чушь, помогите разобраться

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
#include <Windows.h>
#include <stdio.h>
#include <string>
 
using namespace std;
 
string XOR_Crypt( string input, int key )
{
    string outs;
 
    for (int i = 0; i < input.size(); i++)
    {
        int k = static_cast<int>(input[i]);
        k ^= key;
        outs += static_cast<char>(k);
    }
    return outs;
}
 
int main()
{
    int Key = 123;
    string str = "Привет мир";
    
    string tmp = XOR_Crypt(str, Key);
    puts(tmp.c_str());
 
    tmp = XOR_Crypt(tmp, Key);
    puts(tmp.c_str());
 
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2012, 16:16     Перевод алгоритма XOR с C# на C++
Посмотрите здесь:

xor, not C++
Оператор xor C++
Xor encrypt C++
C++ быстрый xor
XOR without XOR C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
07.10.2012, 16:40     Перевод алгоритма XOR с C# на C++ #2
русские шрифты в консоли
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
07.10.2012, 16:48     Перевод алгоритма XOR с C# на C++ #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdlib>
#include <iostream>
#include <string>
 
using namespace std;
 
string xor_crypt(const string& s, unsigned char key) {
    string result = "";
    for (char c: s)
        result += c ^ key;
    return result;
}
 
int main() {
    unsigned char key = 123;
    const string str = "Привет, Мир! Hello World!";
    string cr = xor_crypt(str, key);
    cout << str << endl << cr << endl << xor_crypt(cr, key) << endl;
    system("pause");
}
Все нормально.
LittleBuster
5 / 5 / 1
Регистрация: 14.10.2010
Сообщений: 104
07.10.2012, 16:54  [ТС]     Перевод алгоритма XOR с C# на C++ #4
ой бошка,спс)) совсем вылетело из головы setlocale
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
07.10.2012, 17:11     Перевод алгоритма XOR с C# на C++ #5
При использовании строковых литералов состоящих из элементов типа char(1 байт) и содержащих кириллицу:
1) следите за тем, чтобы исходный файл в котором используются эти константы не был сохранён в юникоде;
2) следите за тем чтобы кодировка файлов, в которых используются строковые литералы, и кодировка консоли совпадали.
Yandex
Объявления
07.10.2012, 17:11     Перевод алгоритма XOR с C# на C++
Ответ Создать тему
Опции темы

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