Я хочу сделать 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#, вы бы так любезны показать мне свои исходники? Или вы могли бы помочь мне по-другому?
Благодарим вас за вашу доброту!
Можете ли вы опубликовать код, который вы написали, чтобы загрузить ключ? Как вы уже опубликовали код, который получит ответ от PHP-скрипта, а затем вернет его. Тем не менее, вот какой-то код: http://csharp-tricks-en.blogspot.de/2015/04/rsa-with-c-and-php.html Материал phpseclib устарел - современные версии phpseclib создали в поддержку XML-ключей. Но C# может помочь вам. – neubert
В конце концов, я использовал [обновленную версию этой статьи] (http://csharp-tricks-en.blogspot.hu/2015/04/rsa-with-c-and-php_27.html). Это работает. Благодаря! –