1

如何使用 RSACryptoServiceProvider 类生成随机 RSA 公钥和私钥 (RSAParameters)?每次创建 RSACryptoServiceProvider 的新实例时,我最终都会导出相同的密钥。

谢谢

4

2 回答 2

4

我对下面的代码做了一些测试,导出的参数总是不同的:

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...
}
于 2010-11-20T17:15:43.300 回答
0

使用以下代码,您永远不应该得到所有相同的键

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

但是您应该注意,指数键可以相同,如果经常是65537(0x010001)

“选择一个整数 e 使得 1 < e < φ(n) 和 gcd(e, φ(n)) = 1;即 e 和 φ(n) 互质。e 被释放为公钥指数。e 具有较短的比特长度和较小的汉明权重会导致更有效的加密——最常见的是 216 + 1 = 65,537。但是,在某些设置中,更小的 e 值(例如 3)已被证明不太安全。 RSA 维基

于 2014-10-14T00:15:50.300 回答