如何为wpf应用程序加密连接字符串

如何为wpf应用程序加密连接字符串,wpf,encryption,Wpf,Encryption,我有一个分布式wpf应用程序,我正试图找到一个好方法来加密app.config中的连接字符串。我曾尝试将app.config重命名为web.config,并从命令行运行aspnetis_reg,对其进行加密,但后来发现这只适用于运行该命令的用户,我已在线获取代码,读取连接字符串并加密密码并保存app.config,在运行应用程序时,我可以运行一个函数来解密密码并保存它,但这会留下一个很大的缺口,即有人可以在运行应用程序时找到app.config并查看密码,而且您还必须知道应用程序何时关闭才能返回

我有一个分布式wpf应用程序,我正试图找到一个好方法来加密app.config中的连接字符串。我曾尝试将app.config重命名为web.config,并从命令行运行aspnetis_reg,对其进行加密,但后来发现这只适用于运行该命令的用户,我已在线获取代码,读取连接字符串并加密密码并保存app.config,在运行应用程序时,我可以运行一个函数来解密密码并保存它,但这会留下一个很大的缺口,即有人可以在运行应用程序时找到app.config并查看密码,而且您还必须知道应用程序何时关闭才能返回加密。谁能告诉我在运行时加密密码和解密的标准方法,而不必在WPF应用程序上编写额外的代码。注意,我已经将此应用程序迁移到enterprise library 5.0,以前的版本是1.0,有一种方法可以将connectionstring放在一个单独的文件中,并对其进行加密和让ent library或.net解密,而不必从他们的数据库担心它。我所希望的是一种类似的方式,即在构建过程中进行加密,如果可能的话,可以使用.net解密,而无需为不同的情况编写额外的代码

您可以参考msdn文档的app.config部分。这里还有代码示例。

我认为这不会起作用,因为正如文章中的注释所述,“连接字符串只能在加密的计算机上解密。”我有一个分布式应用程序,这意味着我必须发送未加密的配置文件,这是我试图避免的,然后在运行时对其进行加密,如果在构建过程中进行加密,然后进行分发,则其他人无法打开它如果我对此有错误,何时调用此函数切换?