【问题标题】:How to store and retrieve database connection password encrypted using C#如何存储和检索使用 C# 加密的数据库连接密码
【发布时间】:2013-08-18 06:52:59
【问题描述】:

我在 web.config 中搜索了一种用于存储和检索数据库用户名和密码的加密方法,但大多数帖子只讨论创建一个加密文本的函数,而不是存储和检索它。

是否有使用密码短语加密 C# 中的文本的内置函数?我找不到。

现在我使用其中一篇 SO 帖子中给出的函数进行加密和解密,但我在加密文本中看到了一些特殊字符。如果我想将加密文本存储在 web.config 中,则该值应符合 html。

我会对用于存储和检索场景的任何其他方法感兴趣。

【问题讨论】:

  • 您不想将任何用户名/密码保存到 web.config。你为什么想要那个?
  • 我在 web.config 中存储连接字符串以连接到数据库。而不是将连接字符串中的 db pwd 存储为纯文本,我想将其加密存储
  • 哦好吧我误会了
  • 如果您想保护您的凭据不被黑客窃取,但您的 Web 应用程序可以对其进行解码,那么黑客可以使用您的解密代码和解密密码自己对其进行解码。我不确定这是否会增加安全性。

标签: c# encryption


【解决方案1】:

您可以使用Data Protection API 来加密您的数据。该数据只能在这台计算机上的当前 Windows 用户帐户下解密。

因此,如果您为 Web 应用程序池创建一个单独的帐户,则只有 Web 应用程序能够加密和解密该数据。

【讨论】:

  • 谢谢亚历克斯。数据保护 API 对我来说有点复杂。我认为这是 asp.net 开发中的基本场景。在 web.config 中存储加密的密码并检索
【解决方案2】:

this example中的加密/解密方法怎么样

然后

string conn = Decrypt(ConfigurationManager.ConnectionStrings[ConnString].ConnectionString);

【讨论】:

  • 我确实具有链接中的加密/解密功能。但是 encrypt 的输出有特殊字符,如斜杠等。所以我担心它是否会正确解密。我想知道是否有更好的方法
  • 你测试过它是否成功解密了那些字符?
猜你喜欢
  • 2011-04-26
  • 2012-04-07
  • 2013-03-16
  • 2015-10-04
  • 2011-07-15
  • 1970-01-01
  • 2017-03-07
  • 1970-01-01
  • 2016-12-25
相关资源
最近更新 更多