如果RSACryptoServiceProvider不能加密大於它的KeySize的數據,那麼在.Net框架中如何實現RsaProtectedConfigurationProvider?RsaProtectedConfigurationProvider實現與RSACryptoServiceProvider c#
我對將要被用來加密實用程序工作/解密的一些敏感信息。我的兩個加密提供選項DPAPI和RSA,而DPAPI不適合網絡農場的環境,RSA是因爲有KeyContainer導出/導入選項配合。這是在工作站上運行的獨立應用程序。
正如我知道非對稱加密算法不是專爲大型數據,我只是想用下面的代碼超過400K加密長度的字符串,它工作得很好。
if (!section.SectionInformation.IsProtected)
{
section.SectionInformation.ProtectSection("RSAProtectedConfigurationProvider");
section.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
}
當然,這意味着除了aspnet_regiis.exe中的導出導入鍵選項之外,幕後會發生更多的事情。
我的理解:
我們加密myapp.exe.config與RsaProtectedConfigurationProvider,提供密鑰容器名稱myrsakeycontainer,以及公共和私有密鑰導出到一個XML文件myrsakeyfile .xml。
如果我們想myapp.exe.config到另一臺計算機被解密,我們進口他們從myrsakeyfile.xml密鑰對與一個名爲myrsakeycontainer容器。
這個效果很好。我可以通過RSACryptoServiceProvider在我的項目中實現同樣的目標。但我無法處理比對我產生 new RSACryptoServiceProvider(cspParameters)
關鍵尺寸數據。
- 我希望能夠解密龐大的數據(以防萬一)現在的樣子 RsaProtectedConfigurationProvider一樣。
- 是的我可以使用RijndaelManaged(我的最愛)實際的 加密和對稱密鑰傳輸(導出/導入)I 可以使用RSACryptoServiceProvider。這讓我在 局面。如果我要導出/導入的對稱密鑰,我應該先 與公共密鑰或RSA加密,將其導入到另一 機,與RSA的私鑰解密。這是導出RSA 密鑰對加密的對稱密鑰一起。
但是,當我出口經由ASPNET_REGIIS.EXE RsaProtectedConfigurationProvider使用RSA密鑰對,我 認爲,出口僅公鑰/私鑰對在一個XML文件 ,沒有其他信息(如對稱密鑰信息) 。
所以,只用RSA密鑰對,如何 RsaProtectedConfigurationProvider設法derypt(巨大的 - 在我的情況 400K字)信息在另一臺計算機 上加密? 在情況下,它採用了對稱算法(可能?!),以 加密信息,如何是對稱密鑰導出/導入到另一 計算機解密?是,RSA密鑰容器的對稱密鑰部分經由ASPNET_REGIIS.EXE出口或在對稱密鑰基於算法做作動態?
我可以用一個Rijndael算法,其關鍵是encrypeted與RSA 密鑰對,我可以導出/導入兩個RSA密鑰對和 Rijndael算法對稱密鑰到另一臺計算機脫身。 (這是我在過去所做的那樣)
我很有興趣知道里面是什麼 RsaProtectedConfigurationProvider使用。
任何理論?概念?鏈接?建議?請..
類似的問題 - What algorithms are used by RSAProtectedConfigurationProvider in web.config encyrption?
只是我一直在尋找的答案。釘在腦袋!而且這個鏈接也是很好的一個。順便說一句,我是工作在礦上做SSIS包配置文件加密的一個項目,因爲它是非常有時限的,我最終獲得來自非對稱密鑰性質的對稱密鑰(如模數,指數..)。項目現場https://ssiscipherboy.codeplex.com。 _Public虛擬SymmetricAlgorithm GetDecryptionKey(的EncryptedData的EncryptedData,串symmetricAlgorithmUri); _這一切有意義了。 – gmaran23