Генерация случайных ключей RSA с помощью RSACryptoServiceProvider - PullRequest
1 голос
/ 20 ноября 2010

Как сгенерировать случайные открытый и закрытый ключи RSA (RSAParameters) с помощью класса RSACryptoServiceProvider?Каждый раз, когда я создаю новый экземпляр RSACryptoServiceProvider, я в конечном итоге экспортирую одни и те же ключи.

Спасибо

Ответы [ 2 ]

4 голосов
/ 20 ноября 2010

Я провел некоторый тест для следующего кода, и экспортируемые параметры всегда отличаются:

var rsaAlgo1 = new RSACryptoServiceProvider();
var rsaAlgo2 = new RSACryptoServiceProvider();

var xml1 = rsaAlgo1.ToXmlString(true);
var xml2 = rsaAlgo2.ToXmlString(true);

if (xml1 != xml2)
{
   // it always goes here...
}
0 голосов
/ 14 октября 2014

Используя следующий код, вы никогда не должны получать все те же ключи

var rsa = new RSACryptoServiceProvider();
var rsaParams = rsa.ExportParameters(true);

Однако вы должны заметить, что Экспонентный ключ может быть одинаковым и, если часто это 65537 (0x010001)

"Выберите целое число e такое, что 1 RSA wiki

...