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

Авторизация в Steam RSA Chilkat - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка: отсутствует оператор >>,соответствующий этим операндам типы операндов: std::ostream>>const double http://www.cyberforum.ru/cpp-beginners/thread1501721.html
Помогите или объясните в чем моя ошибка?? Вот программный код! заголовочный файл #ifndef _ZAGFILE_H_ #define _ZAGFILE_H_ #include <iostream> using namespace std; class Complexx { private:
C++ Загрузка файла на хостинг Доброго времен суток, уважаемые посетители cyberforum! Хотелось бы узнать, каким образом можно залить файл на хостинг? (http://rghost.ru/ , и такие подобные) Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread1501702.html
В чем смысл полиморфизма C++
Объясните, пожалуйста, смысл полиморфизма. Не могу никак вникнуть. Где и как он используется? И примерчик, пожалуйста
При считывании из файла последний элемент читается дважды C++
Всем доброго времени суток! Нашёл граблю. Считываю из файла слова, разделённые пробелами, в vector<string>. Для куска кода, которые по моему разумению должны работать одинаково, выдают разный ответ. Кусок 1: string temp; vector<string> a; while (infile >> temp) a.push_back(temp);
C++ Зачем нужны дружественные функции http://www.cyberforum.ru/cpp-beginners/thread1501629.html
Здравствуйте! Начал изучать "друзей" в С++, но в моём странном учебнике данная тема описывается буквально в 2-х абзацах. В одном абзаце даётся определение дружественных классов, в другом - дружественных функций. Далее без всяких примеров использования "друзей" начинается новая тема. Решил я почитать статьи в интернете по этой теме, начал с дружественных функций. Перечитав множество статей, я...
C++ Разобрать программу перевода в различные системы счисления Здравствуйте.Вопрос такой:Есть задача написать программу для перевода из 16сс(системы счисления) в 10сс+есть решение. //Вопрос:x обозначает степень,и изначально он равен 0.При вводе в программу числа F5 выдает правильный результат.Почему?ведь любое число в нулевой степени=1.получается должно быть так (70-55)*(16^0)+(5*15^1)=95,то есть ответ неверный. #include <math.h> #include <iostream>... подробнее

Показать сообщение отдельно
hiphone
13 / 13 / 3
Регистрация: 28.01.2012
Сообщений: 541
20.07.2015, 06:24     Авторизация в Steam RSA Chilkat
При входе в Steam пароль шифруется RSA средствами паблик ключа.

Вот код на javascript:
Кликните здесь для просмотра всего текста
Javascript
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
var RSAPublicKey = function($modulus_hex, $encryptionExponent_hex) {
    this.modulus = new BigInteger( $modulus_hex, 16);
    this.encryptionExponent = new BigInteger( $encryptionExponent_hex, 16);
}
 
var Base64 = {
    base64: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    encode: function($input) {
        if (!$input) {
            return false;
        }
        var $output = "";
        var $chr1, $chr2, $chr3;
        var $enc1, $enc2, $enc3, $enc4;
        var $i = 0;
        do {
            $chr1 = $input.charCodeAt($i++);
            $chr2 = $input.charCodeAt($i++);
            $chr3 = $input.charCodeAt($i++);
            $enc1 = $chr1 >> 2;
            $enc2 = (($chr1 & 3) << 4) | ($chr2 >> 4);
            $enc3 = (($chr2 & 15) << 2) | ($chr3 >> 6);
            $enc4 = $chr3 & 63;
            if (isNaN($chr2)) $enc3 = $enc4 = 64;
            else if (isNaN($chr3)) $enc4 = 64;
            $output += this.base64.charAt($enc1) + this.base64.charAt($enc2) + this.base64.charAt($enc3) + this.base64.charAt($enc4);
        } while ($i < $input.length);
        return $output;
    },
    decode: function($input) {
        if(!$input) return false;
        $input = $input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        var $output = "";
        var $enc1, $enc2, $enc3, $enc4;
        var $i = 0;
        do {
            $enc1 = this.base64.indexOf($input.charAt($i++));
            $enc2 = this.base64.indexOf($input.charAt($i++));
            $enc3 = this.base64.indexOf($input.charAt($i++));
            $enc4 = this.base64.indexOf($input.charAt($i++));
            $output += String.fromCharCode(($enc1 << 2) | ($enc2 >> 4));
            if ($enc3 != 64) $output += String.fromCharCode((($enc2 & 15) << 4) | ($enc3 >> 2));
            if ($enc4 != 64) $output += String.fromCharCode((($enc3 & 3) << 6) | $enc4);
        } while ($i < $input.length);
        return $output; 
    }
};
 
var Hex = {
    hex: "0123456789abcdef",
    encode: function($input) {
        if(!$input) return false;
        var $output = "";
        var $k;
        var $i = 0;
        do {
            $k = $input.charCodeAt($i++);
            $output += this.hex.charAt(($k >> 4) &0xf) + this.hex.charAt($k & 0xf);
        } while ($i < $input.length);
        return $output;
    },
    decode: function($input) {
        if(!$input) return false;
        $input = $input.replace(/[^0-9abcdef]/g, "");
        var $output = "";
        var $i = 0;
        do {
            $output += String.fromCharCode(((this.hex.indexOf($input.charAt($i++)) << 4) & 0xf0) | (this.hex.indexOf($input.charAt($i++)) & 0xf));
        } while ($i < $input.length);
        return $output;
    }
};
 
var RSA = {
 
    getPublicKey: function( $modulus_hex, $exponent_hex ) {
        return new RSAPublicKey( $modulus_hex, $exponent_hex );
    },
 
    encrypt: function($data, $pubkey) {
        if (!$pubkey) return false;
        $data = this.pkcs1pad2($data,($pubkey.modulus.bitLength()+7)>>3);
        if(!$data) return false;
        $data = $data.modPowInt($pubkey.encryptionExponent, $pubkey.modulus);
        if(!$data) return false;
        $data = $data.toString(16);
        if(($data.length & 1) == 1)
            $data = "0" + $data;
        return Base64.encode(Hex.decode($data));
    },
 
    pkcs1pad2: function($data, $keysize) {
        if($keysize < $data.length + 11)
            return null;
        var $buffer = [];
        var $i = $data.length - 1;
        while($i >= 0 && $keysize > 0)
            $buffer[--$keysize] = $data.charCodeAt($i--);
        $buffer[--$keysize] = 0;
        while($keysize > 2)
            $buffer[--$keysize] = Math.floor(Math.random()*254) + 1;
        $buffer[--$keysize] = 2;
        $buffer[--$keysize] = 0;
        return new BigInteger($buffer);
    }
}


пытаюсь написать это всё на с++ с использованием chilkat, но сервер всё время говорит, что данные неверны.

C++
1
2
3
4
5
6
7
8
QString akey = "<RSAKeyValue><Modulus>" + mod + "</Modulus><Exponent>" + exp + "</Exponent></RSAKeyValue>";
rsa->put_EncodingMode("base64");
rsa->put_LittleEndian(false);
rsa->put_Charset("utf-8");
rsa->put_Utf8(true);
if (!rsa->ImportPublicKey(akey.toStdString().c_str()))
    akey = rsa->lastErrorHtml();
QString password = rsa->encryptStringENC(QString::fromLocal8Bit("123456789").toUtf8(), false);
В чём может быть загвоздка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru