C# 连接字符串加密,有什么想法?

C# 连接字符串加密,有什么想法?,c#,.net,asp.net,C#,.net,Asp.net,如果我正在加密连接字符串部分,则拥有web.config的任何人都可以重新加密该信息 没有只有我或类似的人知道的密码密钥 这里的想法是什么???任何使用VS的web.config的人都可以破译信息 我不明白…我不知道aspnet\u regiis.exe工具是否使用密钥加密或解密web.config。但是 如果它存储在web.config中,则安装了aspnet_regility的任何人都会对其进行解密,但如果它存储在计算机的machine.config或.Net Framework文件夹中,则

如果我正在加密连接字符串部分,则拥有web.config的任何人都可以重新加密该信息

没有只有我或类似的人知道的密码密钥

这里的想法是什么???任何使用VS的web.config的人都可以破译信息


我不明白…

我不知道aspnet\u regiis.exe工具是否使用密钥加密或解密web.config。但是
如果它存储在web.config中,则安装了aspnet_regility的任何人都会对其进行解密,但如果它存储在计算机的machine.config或.Net Framework文件夹中,则任何人都不会对其进行解密。

您错误地认为任何人都可以解密web.config。一旦对配置文件部分进行了加密,它只能在相同的机器上解密(或者在拥有相同的密钥的机器上解密-这是用于网络农业的)

通常,远程下载实际的web.config相当容易(通过漏洞)。但是恶意用户将不拥有您的密钥,将无法解密文件(或包含敏感数据的部分)


这里的要点是您必须信任您的站点宿主,即不会分发敏感密钥。

您可以指定加密提供程序,但默认为RSA提供程序。使用了一把钥匙,但它是“秘密的”。因此,有人需要在您的服务器上运行应用程序的权限,或对文件系统的无限制访问权限,以便对您的web.config进行解密

这(特别是步骤2)讨论了它:


它通常放在machine.config或安全windows存储中。我的建议是先阅读文档,然后问一个更有针对性的问题。您的问题非常模糊,无法回答。只有在您可以访问web.config所在的计算机或知道计算机密钥的情况下,才能取消对该值的加密。你必须完全妥协才有人拥有它。谢谢哈凯特:这让我明白了。