c# - 生成具有自定义指数大小的 2048 key ?

标签 c# rsacryptoserviceprovider

有没有办法使用带有自定义指数的 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/

相关文章:

c# - 在 gridview 行命令中获取 BoundField 值

c# - 在 HTTPS 情况下,未使用 HTTP.SYS 正确配置服务器证书

c# - RSA加密C#

c# - 在 C# 中使用具有正确私钥和公钥对的 RSA 解密时出现错误数据异常

java - 如何加载文件 privakey 文件类型是pem

c# - 保存加密 key 的正确方法是什么?

c# - 在 Web 应用程序之间传递数据

c# - 基于 24 小时制的小时间隔

c# - IIS:使用 C# 的 IIS 的 wwwroot 目录?