使用自定义指数大小生成2048密钥?

时间:2017-10-01 00:33:22

标签: c# rsacryptoserviceprovider

有没有办法使用带有自定义指数的2048来生成RSACryptoServiceProvider RSA密钥对?

new RSACryptoServiceProvider(2048); // = 65537 always

例如,我想将指数设置为65535,但硬编码值似乎为65537

我环顾四周,但无法找到任何信息。

我正在尝试使用RSACryptoServiceProvider生成密钥对,而不是导入现有密钥。

我知道导入已存在的密钥,我可以定义模数,指数和其他因素。

如果不可能,我有哪些替代方案?

1 个答案:

答案 0 :(得分:0)

您可以使用Bouncy Castle加密库。使用X509Certificate2类生成密钥RsaKeyGenerationParameters来设置公共RSA指数。请参阅here密钥对生成示例。但要注意指数的选择。公共RSA指数应为Fermat Number。有关选择指数的更多详细信息,请参阅问题Impacts of not using RSA exponent of 65537

另请参阅有关证书生成Using Bouncy Castle from .NET的有用帖子。为方便起见,您可以生成Bouncy Castle证书并将其转换为.NET RSACryptoServiceProvider对象。

<强>更新

我认为this question中使用rails_12factor的示例可能会对您有帮助。