【发布时间】: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