【问题标题】:How to encrypt data in sql server and decrypt it in .net apps如何在 sql server 中加密数据并在 .net 应用程序中解密
【发布时间】:2011-07-06 13:12:45
【问题描述】:

我想在 sql server 中加密一些密码并让 c# 应用程序解密它们。

显然我可以创建一个 SP 来为我解密所需的密码并将其传递给 c# 应用程序,但这意味着通过网络发送明文密码。

所以我希望能够在 sql server 中加密我的密码(使用密码短语、证书等),可以将其传递给我的 c# 应用程序,然后它们将知道如何解密并使用它。

我认为这一定是可能的(也许使用证书),但不确定从哪里开始。

如果有新方法,可以使用 .net 4 和 sql server 2008。

提前感谢您的建议。

【问题讨论】:

  • 密码是在 SQL 服务器上创建的吗?
  • 好吧,我创建了密码(例如 abc123),但我希望 sql server 使用 EncryptByPassPhrase 对它们进行加密。

标签: c# .net sql-server-2008


【解决方案1】:

您能否在 .NET (2.0) 中创建一个加密/解密程序集并将其部署到 SQL Server?这是我看到如何使用相同的算法/机制来加密/解密数据的唯一方法。

使用加密/解密创建一个 .NET 程序集,将其部署到 SQL Server,在那里使用它来加密数据,并使用相同的程序集/相同的 .NET 代码来解密您的 .NET 应用程序中的数据。

【讨论】:

  • 不错的建议。尽管这完全排除了 sql server 加密。那么这有什么意义呢?
  • @HAdes:SQL Server 加密效果很好 - 在 SQL Server 中。我不确定,但恐怕没有任何方法可以使用其本机加密在 SQL Server 中加密某些内容,然后使用其他方法在 SQL Server 之外对其进行解密。要么留在 SQL Server 中并使用它的加密系统,要么你需要自己动手。
【解决方案2】:

永远不要加密密码!

密码应该加盐和散列 - 这是系统安全性的第一条规则。

【讨论】:

    【解决方案3】:

    我们已经创建了这个功能,一个在代码中使用并部署在服务器上的程序集。但是,我们遇到了内存压力问题。该服务器是具有 24 GB 内存、64 位操作系统和 32 位 sql 服务器的双四核服务器。 AWE开启,sql的进程优先,19gb的内存分配给sql。 这是我们唯一的程序集,我们在日志文件中得到大量错误。我是扩展系统的忠实拥护者,但是,这似乎是一种 hack。为什么我们要使用其中一种?为什么不两者兼而有之?

    【讨论】:

      猜你喜欢
      • 2011-04-29
      • 2011-09-23
      • 2021-10-05
      • 2011-01-10
      • 2023-03-08
      • 2020-09-12
      • 2014-03-09
      • 2013-06-22
      • 2015-11-26
      相关资源
      最近更新 更多