当我想在密钥容器中保存 RSA 密钥时,系统找不到指定的文件异常

system cannot find the file specified exception, when i want to save RSA Key in Key Container

我想上传一个包含我的私钥的文本文件,以保存在虚拟主机上的密钥容器中。

我用下面的方法保存密钥:

var pk = Encoding.UTF8.GetString(fuPrivateKey.FileBytes);
CspParameters csp = new CspParameters();
csp.KeyContainerName = "Name";
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048, csp);
rsa.FromXmlString(pk);
Message = "Key Saved";

加解密用的是:

CspParameters csp = new CspParameters()
{
       KeyContainerName = "Name",
       Flags = CspProviderFlags.UseExistingKey
};
      RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048, csp);

我在本地主机中没有,但当我想保存密钥时,我在虚拟主机中遇到以下错误:

Exception Details: System.Security.Cryptography.CryptographicException: The system cannot find the file specified.

然后我在存储密钥时使用了csp.Flags = CspProviderFlags.UseMachineKeyStore;,我的问题就解决了,但是当我想看看密钥是否存在时,如下所示,它似乎不存在。(以及加密和解密的问题)

我应该如何使用标志来解决我的问题?

当我想 存储密钥时,我使用 CspParameters 和下面的标志:

Flags = CspProviderFlags.UseMachineKeyStore;

当我想要加密、解密和检查现有密钥时的以下标志:

Flags = CspProviderFlags.UseExistingKey|CspProviderFlags.UseMachineKeyStore;