如何使用 RSACryptoServiceProvider 类生成随机 RSA 公钥和私钥 (RSAParameters)?每次创建 RSACryptoServiceProvider 的新实例时,我最终都会导出相同的密钥。
谢谢
如何使用 RSACryptoServiceProvider 类生成随机 RSA 公钥和私钥 (RSAParameters)?每次创建 RSACryptoServiceProvider 的新实例时,我最终都会导出相同的密钥。
谢谢
我对下面的代码做了一些测试,导出的参数总是不同的:
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...
}
使用以下代码,您永远不应该得到所有相同的键
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 维基