【问题标题】:How to encrypt C# configuration file with a predefined key如何使用预定义的密钥加密 C# 配置文件
【发布时间】:2016-09-02 23:28:03
【问题描述】:

我看过

 configSection.SectionInformation.ProtectSection("DataProtectionConfigurationProvider");

但我有两个问题:

  1. 有没有办法用密钥加密配置文件,因为如果他知道这种方法,任何人都可以解密我的文件,对吧?
  2. 在运行时检索连接字符串时是否自动完成解密? (在任何课程中,或在数据集中)? 谢谢

【问题讨论】:

  • 除了我在下面的回答之外,我认为您在使用 app.config 时遇到了困难,这可能意味着桌面应用程序可能将密钥放在哪里。我的案例也是 WPF 桌面应用程序,在桌面应用程序中发现是不可能的。最后,我在 SQL 数据库和桌面应用程序之间采用了 WCF 中间件,并对中间进行了加密。

标签: c# sql encryption app-config


【解决方案1】:

是的,加密配置文件很常见。 DPAPI方式使用对称密钥,因此,如果有人得到密钥,他就可以解密。

在我的例子中,我使用了 RSA 非对称密钥。这样就可以使用公钥进行加密。只有在 SQL 数据库中由服务器保护和持有的私钥才能执行解密。在应用程序方面,用户和应用程序不需要解密的秘密,但需要保持加密。简单来说,公钥是用来加密的,私钥是用来解密的。没有人能轻易得到私钥。

另外,对于像微软Azure这样的云平台,我们必须使用同样是RSA的证书方式。

我的案例花了将近 1 个月的时间才了解其中的复杂性。我最近才完成这项任务。

通过在配置文件中指示私钥的指纹自动执行解密。

【讨论】:

  • 谢谢 Maarten,我知道但上面的答案是用智能手机写的,没有足够的时间。请理解。
  • 这只是一个友好的格式提示。我知道在手机上输入答案很糟糕 :) 我已经做了很多了。
猜你喜欢
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-14
相关资源
最近更新 更多