【发布时间】:2014-02-04 19:21:37
【问题描述】:
我正在开发一个 win 表单应用程序 .net 框架 4.0。
我在 app.config 中有连接字符串。我需要加密它。如果我使用“DataProtectionConfigurationProvider”,那么这将是特定于机器的。 在一台机器上完成的加密不能在另一台机器上使用。所以如果我有 100 台机器,那么每台机器上都会进行 100 次加密。
我必须在 100 台机器上部署这个应用程序。
如果我加密它然后在所有其他机器上使用它有没有办法。
任何帮助将不胜感激。
【问题讨论】:
-
您将使用用户名和密码来执行此操作。否则不会完全安全。当用户第一次登录时,写入加密的连接字符串。您可以使用许多场景。例如,您的 IT 可以使用用户凭据推送加密数据。并且用户必须在第一次运行时更改密码并重新加密 conn 字符串
-
如何使用c#从源代码加密数据库连接字符串。你能推荐一个吗。这是一个数据库连接,因此用户不会更改密码。我只需要在一台机器上加密,这样如果复制它就可以在所有机器上工作。
-
如果在不使用密码等密钥的情况下对其进行加密,并且您的密钥将保存在代码中,那么它是不安全的。您的代码可以很容易地反映和提取密钥。最好的方案是使用一些密码对其进行加密,然后将其提供给用户,当用户第一次运行时,更改密码并重新加密。用户甚至不需要知道文件的内容,所有连接都将作为一个用户进行。但加密将由每个用户完成。
-
正如您所提到的,每个用户都进行了加密。这就是我要避免的。用户无法进行加密。所以我在看第1步 - 数据库连接字符串在用户第一次登录时使用某种加密算法进行加密(在一台机器上)。 Step2- 使用 app.config 获取加密的源代码并复制到所有其他机器,无需对用户进行任何加密。
-
那么您的应用程序没有通过安全问题审核
标签: c# .net winforms encryption