2017-02-11 11 views
2

Я хочу сделать RSA-связь между PHP и C#. Я пытаюсь использовать phpseclib, но у меня есть некоторые проблемы.Phpseclib сгенерировал ключи RSA в сеансе (с клиентом C#)

Это, как я создаю ключи на сервере:

$rsa = new Crypt_RSA(); 
extract($rsa->createKey()); 
$_SESSION['RSAPubKey'] = $publickey; 
$_SESSION['RSAPrivKey'] = $privatekey; 
echo $_SESSION['RSAPubKey']; //here I send the public key to the client 

Это C# клиент:

string valasz = RequestPOST(Program.SzerverDomain + "/Teszt1/SZCShost.php", "hostmuv=biztkapcsrsakulcs"); 

Вот "RequestPOST()" метод:

static CookieContainer cookieJar = new CookieContainer(); 
    public static string RequestPOST(String URL, string postData) 
    { 

     HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Uri.EscapeUriString(URL)); 
     request.CookieContainer = cookieJar; 

     var data = Encoding.UTF8.GetBytes(postData); 

     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.ContentLength = data.Length; 

     using (var stream = request.GetRequestStream()) 
     { 
      stream.Write(data, 0, data.Length); 
     } 

     var response = (HttpWebResponse)request.GetResponse(); 

     var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd(); 

     return responseString.Replace("<br>", "\n").Replace("<br/>", "\n"); 
    } 

Теперь у меня есть ключи, но я не могу их использовать. Я попытался загрузить их, но мне не удалось выполнить php и на C#. Если вы использовали phpseclib с C#, вы бы так любезны показать мне свои исходники? Или вы могли бы помочь мне по-другому?

Благодарим вас за вашу доброту!

+0

Можете ли вы опубликовать код, который вы написали, чтобы загрузить ключ? Как вы уже опубликовали код, который получит ответ от PHP-скрипта, а затем вернет его. Тем не менее, вот какой-то код: http://csharp-tricks-en.blogspot.de/2015/04/rsa-with-c-and-php.html Материал phpseclib устарел - современные версии phpseclib создали в поддержку XML-ключей. Но C# может помочь вам. – neubert

+1

В конце концов, я использовал [обновленную версию этой статьи] (http://csharp-tricks-en.blogspot.hu/2015/04/rsa-with-c-and-php_27.html). Это работает. Благодаря! –

ответ

0

Это решение пришло от комментариев neubert «s:

Как Вы разместили код, который будет получить ответ от PHP скрипт, а затем вернуть его. Тем не менее, вот какой код: http://csharp-tricks-en.blogspot.de/2015/04/rsa-with-c-and-php.html Материал phpseclib устарел - современные версии phpseclib встроены в поддержку XML-ключей. Но C# может помочь вам.

Я просто отправлю его здесь, чтобы его найти.

This article объясняет метод.