我想加密位于app.config中的“ConnectionString
”设置。
但是在运行时,我想直接使用它(直接读ConnectionString
),而不解密它。
我的意思是,我不想让任何人解密字符串。应该没有解密方法。 我在想;它应该像嵌入.net / asp.net / iis功能一样使用。 像“Windows登录”(您可以输入,使用它,但无法解密)
===
示例用法;你有一个包含一些关键数据的小网站。 你没钱买私人服务器, 所以你正在使用共享服务器,如果服务器以某种方式被黑客入侵, 你的应用程序和数据库将被盗。 但是如果你把加密的连接字符串放在app.config中, 这很难解决它,看看数据库里面有什么。
答案 0 :(得分:2)
可以使用aspnet_regiis.exe工具从命令行加密和解密配置文件中的配置设置。
详细信息在以下MSDN文章中进行了描述:
由于该工具主要用于Web应用程序,因此它希望将配置文件命名为“web.config”。这意味着您必须暂时将app.config文件重命名为web.config:
rename App.config web.config aspnet_regiis -pef connectionStrings . -prov DataProtectionConfigurationProvider rename web.config App.config
答案 1 :(得分:1)
DPAPI可能是一个解决方案。
您可以将usr / pwd /凭证连接到本机。 JGalloway比我更了解这一点.JGalloway比我更了解任何dotnet。 http://weblogs.asp.net/jgalloway/archive/2008/04/13/encrypting-passwords-in-a-net-app-config-file.aspx
如果我没有混淆,这会创建一个绑定到机器硬件的usr / pwd组合。即改变网卡和东西可能会破裂。也;一个人无法创建usr / pwd / creds一台机器然后转移到另一台机器。简而言之,这意味着您必须在生产机器上做任何必要的事情 - 如果您的目标是持续交付,可能会让您头疼。
警告:我自己没试过。相反,我选择了“常规”加密。如果有人抓住我的加密字符串和字节码并对其进行逆向工程,我会被吸烟。但这对我来说足够安全。