0

我们有旧版 ASP.NET 应用程序,它使用 Enterprise Library 4.1 对称密钥提供程序,其中密钥存储在物理文件中,如下面的配置所示。它使用机器密钥保护。

<symmetricCryptoProviders>
              <add algorithmType="System.Security.Cryptography.RijndaelManaged, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
                protectedKeyFilename="F:\wwwroot2\MSEntLib3.1\key\EncryptionKey.key"
                protectedKeyProtectionScope="Machine" type="Microsoft.Practices.EnterpriseLibrary.Security.Cryptography.SymmetricAlgorithmProvider, Microsoft.Practices.EnterpriseLibrary.Security.Cryptography, Version=3.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                name="RijndaelManaged" />
            </symmetricCryptoProviders>

我部署到 Azure 并且应用程序抛出错误“EncryptionKey.key”未找到。有人可以帮助我们如何继续在 azure 中使用 Enterprise Library Crypto 吗?

是否有任何选项可以让我们创建密钥并在包括 Azure Web 角色在内的任何 Web 服务器上使用?

谢谢

4

1 回答 1

1

对称加密提供程序密钥存储在一个文件中,该文件使用应用程序配置文件中的完整物理文件路径和名称进行引用,并受 DPAPI 加密保护,就像您的配置中所示。因为 DPAPI 在 Windows Azure 中不可用,所以使用开箱即用的企业库对称加密提供程序将不起作用。

但是,您可以考虑创建一个自定义对称算法提供程序以与 Enterprise Library Crypto 块一起使用。此提供程序可以使用 .NET 加密服务提供程序来实现加密,并作为最佳实践以加密格式存储密钥、脱机执行加密并将它们存储在 Windows Azure Blob 存储中。有关此方法的更多信息,请参阅在 Windows Azure 应用程序中使用基于证书的加密这篇关于在 Windows Azure 中保护连接字符串的帖子。

于 2013-08-14T17:28:12.293 回答