如何使用aspnet_regiis选择/强制执行A​​ES加密来加密web.config值?

时间:2012-01-08 08:50:55

标签: asp.net encryption web-config aes aspnet-regiis.exe

我需要为我们的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" />

1 个答案:

答案 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"