반응형
web.config에서 하나의 항목을 암호화하는 방법
ASP.NET 4
웹 팜에 있는 web.config의 연결 문자열에 RSA 키 암호화를 사용했습니다.그러나 암호화할 사용자 지정 암호 항목이 하나 더 있습니다.나머지 구성을 암호화하지 않고 RSA 키로 암호화하는 방법조언 부탁드립니다. 감사합니다.
예:
<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"];
c# 및 .에서.Net 4.5 암호화된 설정을 읽기 위해 사용해야 했습니다.
string password = ((System.Collections.Specialized.NameValueCollection)ConfigurationManager.GetSection("secureAppSettings"))["Password"];
하지만 다른 방법으로는 효과가 있습니다.
단일 항목은 암호화할 수 없습니다. 인프라는 전체 구성 섹션의 암호화만 허용합니다.
한 가지 옵션은 항목을 자체 구성 섹션에 배치하고 암호화하는 것입니다.
언급URL : https://stackoverflow.com/questions/6224732/how-to-encrypt-one-entry-in-web-config
반응형
'programing' 카테고리의 다른 글
| Android의 선형 레이아웃 및 가중치 (0) | 2023.08.01 |
|---|---|
| 스프링 부트 2.0에서 기본 히카리프 Tomcat 풀을 교체하는 방법 (0) | 2023.08.01 |
| Animate scrollFirefox에서 상단이 작동하지 않음 (0) | 2023.08.01 |
| 공기 흐름에서 동적 워크플로우를 만드는 올바른 방법 (0) | 2023.08.01 |
| 다중 글꼴 가중치, 하나의 @ 글꼴-면 쿼리 (0) | 2023.08.01 |