【问题标题】:encrypt winforms app.config connection string without machine specific encryption加密 winforms app.config 连接字符串,无需机器特定加密
【发布时间】: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


【解决方案1】:

创建您自己的加密/解密函数。创建 SQLConnection 时将其加密并从您的应用程序调用解密

有很多这样的例子。

Crypto Examples

【讨论】:

    猜你喜欢
    • 2016-02-10
    • 2010-09-06
    • 1970-01-01
    • 2012-07-23
    • 2011-05-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    相关资源
    最近更新 更多