使用 RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一个密钥容器中?

Posted

技术标签:

【中文标题】使用 RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一个密钥容器中?【英文标题】:Using RSACryptoServiceProvider, how does one store a key exchange key and signature key in the same key container? 【发布时间】:2019-10-24 23:06:54 【问题描述】:

我想使用一个密钥对进行加密,并使用一个单独的密钥对进行签名。如何使用 RSACryptoServiceProvider 将它们存储在同一个密钥容器中?

【问题讨论】:

【参考方案1】:

最好的答案是:不要——只是创建不同的密钥容器。

RSACryptoServiceProvider 基于 Windows CAPI 构建,后者是两个 Windows 加密库中较旧的一个(现在被认为已弃用)。 (并排)替代品 Windows CNG 不再具有“签名密钥”和“交换密钥”的区别……每个“命名密钥”只有一个密钥。 CNG 可以返回到 CAPI,但它只会使用两个密钥之一(我相信交换会获胜),因为它无法询问您关心哪个密钥。

.NET 的某些部分现在只优先使用RSACng,如果其中一个地方运行到您的双键密钥容器中,您可能会遇到问题。

【讨论】:

以上是关于使用 RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一个密钥容器中?的主要内容,如果未能解决你的问题,请参考以下文章

在使用加载数据流步骤的猪中,使用(使用 PigStorage)和不使用它有啥区别?

今目标使用教程 今目标任务使用篇

Qt静态编译时使用OpenSSL有三种方式(不使用,动态使用,静态使用,默认是动态使用)

MySQL db 在按日期排序时使用“使用位置;使用临时;使用文件排序”

使用“使用严格”作为“使用强”的备份

Kettle java脚本组件的使用说明(简单使用升级使用)