3

我想加密ConnectionString位于 app.config 中的“”设置。但是在运行时,我想直接使用(读取ConnectionString)它,而不是解密它。

我的意思是,我不想让任何人解密字符串。应该没有解密方法。我在想; 它应该像嵌入 .net/asp.net/iis 功能一样使用。像“Windows登录”(可以输入,可以使用,但不能解密)

===

示例用法;您有一个包含一些关键数据的小型网站。您没有钱购买私人服务器,所以您正在使用共享服务器,如果服务器以某种方式被黑客入侵,您的应用程序和数据库将被盗。但是如果你将加密的连接字符串放在 app.config 中,这将很难解密它并查看数据库中的内容。

4

2 回答 2

2

可以使用 aspnet_regiis.exe 工具从命令行对配置文件中的配置设置进行加密和解密。

以下 MSDN 文章中描述了详细信息:

加密和解密配置部分

由于该工具主要用于 Web 应用程序,因此它需要将配置文件命名为“web.config”。这意味着您必须暂时将 app.config 文件重命名为 web.config:

重命名 App.config web.config
aspnet_regiis -pef 连接字符串。-prov DataProtectionConfigurationProvider
重命名 web.config App.config
于 2013-01-07T11:43:27.293 回答
1

DPAPI可能是一个解决方案。

您可以将您的 usr/pwd/credentials 连接到机器。JGalloway 比我更了解这一点。JGalloway 比我更了解任何 dotnet。http: //weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config -文件.aspx

如果我没有混淆,这会创建一个绑定到机器硬件的 usr/pwd 组合。即更换网卡和东西可能会破坏。还; 不能在一台机器上创建 usr/pwd/creds 然后转移到另一台机器上。简而言之,这意味着你必须在生产机器上做任何你必须做的事情——如果你的目标是持续交付,这可能会让你头疼。

警告:我自己没有尝试过。相反,我选择了“常规”加密。如果有人掌握了我的加密字符串和字节码并对其进行逆向工程,我会被熏死。但这对我来说已经足够安全了。

于 2013-01-07T11:32:51.140 回答