1

我最近发现了使用 aspnet_regiis 加密部分 web.config 的能力。我们希望使用单独的密钥进一步加密存储在数据库中的数据,但存储使用与系统用于加密 web.config 相同的密钥加密的密钥。有没有办法从 C#/ASP.Net 本身以编程方式访问它?

基本上,场景是:我们在 web.config 中的连接字符串将使用 aspnet_regiis 加密(当前是 RSA 提供程序,直到我可以让 AES 提供程序工作)。然后,我们希望存储在初始数据库(包括初始数据库的可写连接)中的附加连接字符串信息(对于其他数据库)使用不同的密钥加密,但该密钥将存储在初始数据库中并使用加密web.config 使用的初始加密。

否则我将不得不为 web.config 中使用的算法存储密钥和 IV,我认为使用它用于加密 web.config 中的 web.config 的 Windows 安全“钥匙串”会更安全第一名。

4

1 回答 1

0

首先,我不确定您是否可以获得 aspnet_setreg 使用的加密密钥。

其次,我不认为使用特定于机器的密钥加密数据库中的数据是一个非常好的主意。如果该机器出现故障并且必须将数据库从备份恢复到另一台机器,那么数据库中的数据会发生什么情况?

我认为使用可逆加密算法(即 Rinjadel)使用存储在用于提取数据的已编译应用程序中的密钥和 iv 会更好。

如果其他应用程序需要连接字符串,您可以使用 Windows 安全凭据通过 WCF 服务集中访问它们。

于 2012-01-09T02:57:39.863 回答