如果的RSACryptoServiceProvider不能加密大于它的数据密钥大小 ,如何RsaProtectedConfigurationProvider是在.NET框架中实现?
我的工作是要被用来加密/解密的一些敏感信息的工具。 我的两个加密提供选项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的 (我的最爱)实际加密和对称密钥传输(出口/进口),我可以使用的RSACryptoServiceProvider 。 这使我在一种情况,如果我要导出/导入的对称密钥,我应该先用公共密钥或RSA加密,将其导入到另一台机器,与RSA的私钥解密。 这是导出RSA密钥对用加密的对称密钥一起。
但是,当我出口使用的RSA密钥对RsaProtectedConfigurationProvider通过ASPNET_REGIIS.EXE,我相信这仅导出公钥/私钥对XML文件,并没有其他的信息(如对称密钥信息)。
所以,只用RSA密钥对,如何RsaProtectedConfigurationProvider设法derypt(巨大的-超过40万个字符在我的情况)的信息在另一台电脑上加密? 在情况下,它采用了对称算法(也许?)来加密信息,如何是,对称密钥导出/导入到另一台计算机解密? 是,RSA密钥容器的对称密钥部分经由ASPNET_REGIIS.EXE出口或在对称密钥基于算法做作动态?
我可以用一个Rijndael算法,其关键是encrypeted与RSA密钥对,我可以导出/导入两个RSA密钥对和Rijndael算法对称密钥到另一台计算机脱身。 (这是我在过去所做的那样)
我想知道什么是内部使用RsaProtectedConfigurationProvider 。
任何理论? 概念? 链接? 建议? 请..
类似的问题- 在web.config中encyrption使用何种算法通过RSAProtectedConfigurationProvider?