【问题标题】:Encrypt in Java and Decrypt in MS SQL Server在 Java 中加密和在 MS SQL Server 中解密
【发布时间】:2015-08-26 02:38:27
【问题描述】:

我的申请流程如下。

JAVA APP ----> MS SQL(表)---> MS SQL(存储过程)---> 另一个数据库

在这里,我从 Java 应用程序推送某些我什至想对 DBA 隐藏的敏感信息。所以我想加密来自java的那些列值,在存储过程将它推送到另一个数据库之前,我想用SQL代码解密它。

问题是 MS SQL 不允许为加密或解密传递自定义密钥。它自己生成这些密钥,我们看不到这些密钥值。所以我不能解密它们,因为我不能在 SQL DecryptByKey Mehtod 中传递我的密钥(我用来加密 Java 代码中的值)。我正在使用 3DES 加密方案。 谁能帮我解决这个问题。

现在的核心问题是。我如何解密任何基于 3DES 的加密值 (我在 Java 代码中加密此值)在 MS SQL Server 2008 中,当我知道有关加密值的所有详细信息(例如盐和其他内容)时。 SQL 中是否有任何方法可以传递我的自定义密钥并解密这些值。

任何帮助将不胜感激。

【问题讨论】:

  • 在两端使用标准的加密/解密方案,它会起作用:stackoverflow.com/questions/17113113/…
  • 达菲莫。问题是 SQL 服务器正在生成自己的密钥,并且不支持我可能传递的密钥。它正在从 PassPhrase(我们通过的)生成密钥,并且它生成密钥的算法未打开。因此,即使我在 Java 和 SQL 中都使用 3DES .. 将在 SQL 中生成的密钥对我来说是未知的。 [链接]social.msdn.microsoft.com/forums/sqlserver/en-US/…
  • 密钥必须在两者之间共享:stackoverflow.com/questions/20227/…
  • 达菲莫。我可以用 Java 加密和解密。但是我怎样才能获得正在创建的 SQL 的加密密钥。使用 Java 我可以加密和解密代码。
  • 让 Java 在写入时加密,在读取时解密。我就是这样做的。

标签: java sql-server encryption encryption-symmetric


【解决方案1】:

您可以使用 SSL 加密整个 jdbc 流量。看https://msdn.microsoft.com/en-us/library/bb879935%28v=sql.110%29.aspx

【讨论】:

  • 我们已经在使用 SSL。但我们不希望 DBA 看到那些列值。所以我们也想加密某些列的值。
【解决方案2】:

无法查看 SQL Server 密钥,因此我们无法解密由 SQL Server 加密的任何内容。

我不得不针对这种情况改变我的方法。

【讨论】:

  • 您能提供更多信息并告诉我最好的方法吗?我已经加密了我的 SQL Server 中的一些列...你能告诉我如何在 java 中解密它们吗?
猜你喜欢
  • 2011-04-29
  • 2014-03-09
  • 1970-01-01
  • 2011-09-23
  • 2011-01-10
  • 2020-09-12
  • 2015-11-13
  • 2021-10-05
  • 1970-01-01
相关资源
最近更新 更多