gpt4 book ai didi

asp.net - 如何加密 web.config 中的一项

转载 作者:行者123 更新时间:2023-12-03 07:16:00 28 4
gpt4 key购买 nike

ASP.NET 4

我在我的网络场的 web.config 中使用了 RSA key encryption 作为连接字符串。不过,我还想加密一个自定义密码条目。我应该如何使用 RSA key 对其进行加密,而不加密其余配置。请指教,谢谢。

示例:

  <appSettings>
...
<add key="Host" value="www.foo.com" />
<add key="Token" value="qwerqwre" />
<add key="AccountId" value="123" />
<add key="DepartmentId" value="456" />
<add key="Password" value="asdfasdf" />
<add key="SessionEmail" value="foo@foo.com" />
<add key="DefaultFolder" value="789" />
</appSettings>

最佳答案

您可以将密码放入单独的部分并仅加密该部分。例如:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<appSettings>
<add key="Host" value="www.foo.com" />
<add key="Token" value="qwerqwre" />
<add key="AccountId" value="123" />
<add key="DepartmentId" value="456" />
<add key="SessionEmail" value="foo@foo.com" />
<add key="DefaultFolder" value="789" />
</appSettings>

<secureAppSettings>
<add key="Password" value="asdfasdf" />
</secureAppSettings>
</configuration>

然后(请注意,我在示例中使用 DPAPI,因此请调整 RSA 的提供程序):

aspnet_regiis -pef secureAppSettings . -prov DataProtectionConfigurationProvider

加密后,文件将如下所示:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="secureAppSettings" type="System.Configuration.NameValueSectionHandler, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<appSettings>
<add key="Host" value="www.foo.com" />
<add key="Token" value="qwerqwre" />
<add key="AccountId" value="123" />
<add key="DepartmentId" value="456" />
<add key="SessionEmail" value="foo@foo.com" />
<add key="DefaultFolder" value="789" />
</appSettings>

<secureAppSettings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>AQAAANCMnd.......</CipherValue>
</CipherData>
</EncryptedData>
</secureAppSettings>
</configuration>

文件加密后,您在应用程序中访问这些设置的方式仍然相同且完全透明:

var host = ConfigurationManager.AppSettings["Host"];
var password = ConfigurationManager.AppSettings["Password"];

关于asp.net - 如何加密 web.config 中的一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6224732/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com