加密 SQL 连接字符串

Encrypt SQL connection string

我知道如何使用System.Configuration.SectionInformation.ProtectSection加密和解密app.config中的连接字符串(VS 2010C#.Net 3.5),但是我想任何知道这种方法的人都可以拿到加密的字符串并对其进行解密,对吗?

如果不是,请告诉我原因。如果是,是否有任何解决方法?我搜索了但找不到任何帮助。

当字符串被加密时,它使用安装在机器上的证书来执行加密,因此您需要字符串 机器密钥来解密它。

关于配置的加密部分的完整说明在 MSDN

要解密连接字符串信息,您可以使用以下方法:

Configuration config = WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
ConfigurationSection section = config.GetSection("connectionStrings");
if (section.SectionInformation.IsProtected)
{
   section.SectionInformation.UnprotectSection();
   config.Save();
}

阅读此 article 的完整信息。