我需要为我们的ASP.Net 4.0项目加密部分web.config,但我们需要使用AES,默认似乎是Triple DES。如何告诉它使用AES加密?
在命令提示符中,我执行以下命令:
aspnet_regiis -pc "NetFrameworkConfigurationKey" -exp
aspnet_regiis -pe "connectionStrings" -app "/<myapp>"
我想通过选择合适的CSP(-csp)将加密方法设置为AES,但我还没有找到或找出正确的名称。
加密的web.config中的一行是:
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
答案 0 :(得分:2)
使用-prov参数为aspnet_regiis选择提供程序。使用configProtectedData部分在web / machine.config中注册提供程序。要注册AES,您可以使用以下内容:
<configProtectedData>
<providers>
<add name="AesProvider"
type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider"
description="Uses an AES session key to encrypt and decrypt"
keyContainerName="iisConfigurationKey" cspProviderName=""
useOAEP="false" useMachineContainer="true"
sessionKey="aSessionKeyGoesHere" />
</providers>
</configProtectedData>
在我的机器上,RSA和DPAPI是machine.config中的预配置算法。
如果AES提供商已注册,您应该能够使用以下方式加密配置部分:
aspnet_regiis -pe "connectionStrings" -app "/<myapp>" -prov "AesProvider"