有没有办法使用带有自定义指数的 RSACryptoServiceProvider
生成 2048
RSA key 对?
new RSACryptoServiceProvider(2048); // = 65537 always
例如,我想将指数设置为65535
,但硬编码值似乎是65537
。
我环顾四周,但找不到任何信息。
我正在尝试使用 RSACryptoServiceProvider
生成新 key 对,而不是导入现有 key 。
我知道导入一个已经存在的 key ,我可以定义模数、指数和其他因素。
如果不可能,我有什么选择?
最佳答案
您可以使用 Bouncy Castle加密库。使用 RsaKeyPairGenerator
类通过 RsaKeyGenerationParameters 生成 key 用于设置您的公共(public) RSA 指数。参见 here生成 key 对的示例。但要注意指数的选择。公共(public) RSA 指数应该是 Fermat Number .见问题 Impacts of not using RSA exponent of 65537有关选择指数的更多详细信息。
另请参阅有关证书生成的有用帖子 Using Bouncy Castle from .NET .为了您的方便,您可以生成 Bouncy CaSTLe 证书并将其转换为 .NET X509Certificate2
对象。
更新:
我认为this question中的例子使用 RSACryptoServiceProvider
可能会对您有所帮助。
关于c# - 生成具有自定义指数大小的 2048 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508225/