C# 如何在应用程序配置文件中定义和加密连接字符串

C# 如何在应用程序配置文件中定义和加密连接字符串,c#,C#,我已经用c创建了一个应用程序。我在app config文件中定义了一个连接字符串。以下是我的应用程序配置文件代码: <?xml version="1.0" encoding="utf-8"?> <configuration> <startup useLegacyV2RuntimeActivationPolicy="True"> <supportedRuntime version="v4.0" sku=".NETFramework,Versio

我已经用c创建了一个应用程序。我在app config文件中定义了一个连接字符串。以下是我的应用程序配置文件代码:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="True">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>
  <appSettings>
    <add key="con" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\Mydb.mdb;Persist Security Info=True;Jet OLEDB:Database Password=bd1234" />
  </appSettings>
</configuration>
我想创建以下格式的代码和加密的密码值

<?xml version="1.0"?>
<configuration>
  <configSections>
  </configSections>
  <appSettings>
    <add key="ServerName" value="user"/>
    <add key="Provider" value="Microsoft.Jet.OLEDB.4.0"/>
    <add key="Data Source" value="C:\myFolder\Mydb.mdb"/>
    <add key="Persist Security Info" value="True"/>
    <add key="Jet OLEDB:Database Password" value="*******"/>
  </appSettings>
  <startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>    
</configuration>
我该怎么做呢?

你试过下面的吗

 string value = System.Configuration.ConfigurationManager.AppSettings[key];
需要添加参考系统。配置

如果您知道如何进行加密,则可以按照以下方式保存加密的密码

要进行加密并保存应用程序设置,请访问@ksdev链接

好问题

理想情况下,如果您可以使用windows身份验证,这将解决您的问题,而无需保护您的配置文件

尝试添加以下内容:

 <add key="con" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\myFolder\Mydb.mdb;Persist Security Info=False;Integrated Security=SSPI;Jet OLEDB:Database" />
以下是一份MSDN文档,其中包含更多详细信息:

如果确实需要保护应用程序配置,可以使用.NET famework ProtectSection函数,该函数将使用machine.config密钥加密配置文件,并且应用程序将能够访问配置详细信息,但不容易看到

考虑到安全问题,有必要详细了解其工作原理:

用这个。有几种方法可以做到这一点。您可以使用ConnectionString配置部分对整个部分进行加密,也可以使用任何加密-解密算法来执行此任务,甚至可以创建自己的算法来执行此任务的加密可能的副本。这可能会对你有所帮助。OP询问如何从配置文件中保护他们的密码。我知道这不是具体的答案,但投稿人问应该编写什么代码来生成预期格式的应用程序设置。我认为加密在这里不是问题,他问@在本例中,ksdev提供了更具体的指南链接。你怎么认为?