加密 App.Config 文件的 appsettings 部分中的单个密钥
Posted
技术标签:
【中文标题】加密 App.Config 文件的 appsettings 部分中的单个密钥【英文标题】:Encrypt a single key in the appsettings section of App.Config file 【发布时间】:2011-04-19 19:07:14 【问题描述】:可以加密单个值还是必须加密整个部分?
即鉴于下面的 app.config 可以我如何只加密密码。我已阅读有关加密连接字符串部分和 app.config 的整个部分的文章。
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="Interval" value="40000" />
<add key="User" value="User1" />
<add key="Password" value="boombox" /> ...
如果您有任何建议,我们将不胜感激
【问题讨论】:
您可以随时自己加密,以加密形式存储,并在需要时解密;但在 .NET 配置系统中没有对此的直接支持(仅适用于每个部分) 谢谢,是的,这显然是我在我的问题中遗漏的部分。正如您所说,.net 配置系统是否有直接支持。 【参考方案1】:您必须在保存之前/加载设置文件之后加密/解密。看看System.Security.Cryptography Namespace。我使用 DES 提供程序将密码读/写到设置文件中。
【讨论】:
【参考方案2】:您可以在 app.config 中使用 DPAPI 加密密码。
【讨论】:
注意 Jon 的解决方案仅适用于单台机器 - 将应用程序和配置移至另一台机器会破坏加密 DPAPI 可以加密和解密字符串,但是加密的字符对于 App.Config 的 XML 是非法的。添加此内容是为了防止未来的读者在上面浪费时间。以上是关于加密 App.Config 文件的 appsettings 部分中的单个密钥的主要内容,如果未能解决你的问题,请参考以下文章
加密 connectionStrings 部分 - app.config 的实用程序
加密将重新分发的 App.config 文件中的部分和/或设置
powershell Encrypt-Config.ps1:用于加密或解密.NET app.config文件的PowerShell工具