我尝试加密网络应用的web.config,但此应用程序存在于2个不同的环境(舞台,制作)中,每个环境应使用不同的密钥容器。
所以我在我的舞台配置上使用这个加密标题:
<configProtectedData defaultProvider="ApplicationProvider">
<providers>
<add name="ApplicationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
keyContainerName="ApplicationStageKeys"
useMachineContainer="true"
useOAEP="true"/>
</providers>
我的生产配置上的这个标题:
<configProtectedData defaultProvider="ApplicationProvider">
<providers>
<add name="ApplicationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
keyContainerName="ApplicationProductionKeys"
useMachineContainer="true"
useOAEP="true"/>
</providers>
加密工作正常,但每当我尝试解密时,我都会收到以下错误,这会给想象力带来太大的影响......
C:\Windows\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -pdf connectionStrings C:\Temp
Decrypting configuration section...
Failed to decrypt using provider 'ApplicationProvider'. Error message from the provider: Bad Data.
(C:\Temp\web.config line 75)
Bad Data.
Failed!
我已经在每台服务器上导入了密钥并为两者设置了ACL,但仍然没有任何乐趣,还有其他任何问题吗?
答案 0 :(得分:1)
在浏览完之后我发现了一个问题,我们的安全人员要求我们将'useOAEP'标志变为'true',我将其删除,加密和解密工作完美!
我希望我能解释为什么修复它但是当你提供的所有内容都是一个愚蠢的错误信息(错误的数据!)时,你不能完全期待一个聪明的解释。
以下是我们的加密标头现在的样子:
<configProtectedData defaultProvider="ApplicationProvider">
<providers>
<add name="ApplicationProvider"
type="System.Configuration.RsaProtectedConfigurationProvider, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
keyContainerName="ApplicationProductionKeys"
useMachineContainer="true"/>
</providers>
希望在尝试加密时,这会在发际线上保存几英寸