【发布时间】:2019-10-24 23:06:54
【问题描述】:
我想使用一个密钥对进行加密,并使用一个单独的密钥对进行签名。如何使用 RSACryptoServiceProvider 将它们存储在同一个密钥容器中?
【问题讨论】:
标签: encryption rsacryptoserviceprovider
我想使用一个密钥对进行加密,并使用一个单独的密钥对进行签名。如何使用 RSACryptoServiceProvider 将它们存储在同一个密钥容器中?
【问题讨论】:
标签: encryption rsacryptoserviceprovider
最好的答案是:不要——只是创建不同的密钥容器。
RSACryptoServiceProvider 基于 Windows CAPI 构建,后者是两个 Windows 加密库中较旧的一个(现在被认为已弃用)。 (并排)替代品 Windows CNG 不再具有“签名密钥”和“交换密钥”的区别……每个“命名密钥”只有一个密钥。 CNG 可以返回到 CAPI,但它只会使用两个密钥之一(我相信交换会获胜),因为它无法询问您关心哪个密钥。
.NET 的某些部分现在只优先使用RSACng,如果其中一个地方运行到您的双键密钥容器中,您可能会遇到问题。
【讨论】: