2017-07-09 67 views
0

我想上傳一個包含我的私鑰的文本文件,以保存在Web主機上的密鑰容器中。系統無法找到指定的文件異常,當我想將RSA密鑰保存在密鑰容器中時

我用下面保存鍵:

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); 

我沒有在本地主機,但我在虛擬主機獲得如下錯誤,當我想要保存密鑰:

異常詳細信息:System.Security.Cryptography.CryptographicException:系統找不到指定的文件。

然後我用csp.Flags = CspProviderFlags.UseMachineKeyStore;而存儲密鑰和我的問題就解決了,但是當我想看看,關鍵是存在像下面似乎這並不exsit。(在加密和解密的問題)

如何我應該用一些標誌來解決我的問題嗎?

回答

0

我用CspParameters與下面的標誌時,我想存儲密鑰

Flags = CspProviderFlags.UseMachineKeyStore; 

,當我要加密的下方標誌,解密和檢查現有密鑰的:

Flags = CspProviderFlags.UseExistingKey|CspProviderFlags.UseMachineKeyStore;