应用程序级加密

时间:2015-10-08 12:16:29

标签: c# security encryption cryptography web-config

我曾尝试使用不同的ProtectionProviders加密网络配置,但这些方法无法完全填充安全性。因为我可以轻松地从其他应用程序解密文件:

我用于加密的方法:

 public void EncryptConnString()
        {
            Configuration confg = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
            ConfigurationSection confStrSect = confg.GetSection(section);
            if (confStrSect != null)
            {
                confStrSect.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");                
                confStrSect.SectionInformation.ForceSave = true;
                confg.Save(ConfigurationSaveMode.Full);
            }
        }

如果我将encrypted appSettings复制到另一个应用程序并调用该方法进行解密。这将给出原始数据,如果我将加密的配置文件与任何其他应用程序连接并调用解密方法,它将很容易解密。

  

这意味着;如果任何人都可以轻松访问配置文件   价值,通过解密。

所以我的问题就是这样;如何使用密码加密web.config?或者提供应用程序级加密(限制其他应用程序解密文件)。

用于解密的方法:

public void DecryptConnString()
        {
            Configuration confg = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
            ConfigurationSection confStrSect = confg.GetSection(section);
            if (confStrSect != null)
            {
                confStrSect.SectionInformation.UnprotectSection();
                confStrSect.SectionInformation.ForceSave = true;
                confg.Save(ConfigurationSaveMode.Full);
            }
        }

我曾尝试使用以下ProtectionProviders

  1. MyUserDataProtectionConfigurationProvider
  2. DataProtectionConfigurationProvider
  3. RSAProtectedConfigurationProvider
  4.   

    注意:我必须以编程方式执行此操作,以便aspnet_regiis无法帮助我

0 个答案:

没有答案