使用 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有三种方式(不使用,动态使用,静态使用,默认是动态使用)