如何有效地恢复RSA中的公钥或私钥?

问题描述 投票:1回答:1

我发现许多帖子如何通过RSACryptoServiceProvider做到这一点,但是所有人都缺少一件事。即使很小,我也想问是否有人知道如何有效地做到这一点。

实例化RSACryptoServiceProvider时,它将生成一个私钥/公钥。对象上有导入方法,您可以导入另一个键。例如ImportCspBlob。令我困扰的是,即使我不需要它们,它在执行构造函数时也会生成私钥/公钥对。无论如何,我计划导入另一个密钥。问题是如何要么在执行构造函数时避免生成密钥,要么将我的密钥传递给构造函数以有效地避免生成新的密钥对?

[此外,我知道密钥容器,并了解了如何使用它通过将CspParameters传递给构造函数,但是在我的情况下,我将公共密钥传递给了另一个应用程序或系统,这意味着该容器还是空的。

.net cryptography rsa
1个回答
0
投票

RSACryptoServiceProvider构造函数确实根据简短的构造函数文档创建了一个密钥对:

使用随机密钥对初始化RSACryptoServiceProvider类的新实例。

但是,如果您单击构造函数,然后阅读完整的文档,那么甚至在示例代码下面,您都会得到这句话:

此构造方法不会生成新的公用/专用密钥对立即。如果没有通过ImportParameters方法或任何其他密钥导入方法加载的密钥,则在需要密钥之前,将根据需要创建一个1024位临时密钥。

换句话说,它使用密钥对字段的延迟实例化。

所以您的假设是错误的,但是您有一个很大的借口将其弄错:.NET加密类的文档仍未达到应有的水平。

© www.soinside.com 2019 - 2024. All rights reserved.