使用aspnet_regi用于加密web.config的相同密钥以编程方式加密数据

时间:2012-01-09 00:18:39

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

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

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

否则我将不得不为web.config中使用的算法存储密钥和IV,并且我认为使用它用于加密Web的Windows安全“密钥链”会更安全。配置首先。

1 个答案:

答案 0 :(得分:0)

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

其次,我不认为使用机器专用密钥加密数据库中的数据是一个非常好的主意。如果该计算机出现故障并且数据库必须从备份还原到其他计算机,那么数据库中的数据会发生什么变化?

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

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