有没有办法使用带有自定义指数的2048
来生成RSACryptoServiceProvider
RSA密钥对?
new RSACryptoServiceProvider(2048); // = 65537 always
例如,我想将指数设置为65535
,但硬编码值似乎为65537
。
我环顾四周,但无法找到任何信息。
我正在尝试使用RSACryptoServiceProvider
生成新密钥对,而不是导入现有密钥。
我知道导入已存在的密钥,我可以定义模数,指数和其他因素。
如果不可能,我有哪些替代方案?
答案 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
的示例可能会对您有帮助。