在 Oracle 中解密 Jasypt 加密信息

Decrypt Jasypt encrypted information in Oracle

我需要基于我们数据库中的几个表创建一个物化视图,但要注意的是,基础表中的几个列是使用 Jasypt 加密的,并且所有列都必须是纯文本物化视图。

Oracle 中是否有任何可用于 Jasypt 解密的隐式函数或有关编写自己的函数以实现此目的的任何建议?

PS : 使用的加密是可解密的。

您可以在 oracle 中创建一个 java 存储过程。这相当简单 - 像这样创建源代码:

create or replace and compile java source named JasyptWrapper as
public class JasyptWrapper
{
  public static String decrypt(String str)
  {
         String decryptedStr = "";
         //code to decrypt
         return decryptedStr;
  }
}

像这样创建存储过程包装器:

FUNCTION jasypt_decrypt(p_str VARCHAR2) RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'JasyptWrapper.decrypt(java.lang.String) return String';

然后您可以编写 java 代码以利用 jasypt 执行解密,但您将能够像调用任何其他 PL/SQL 过程一样调用它。

您必须使用 loadjava 将 jasypt 库加载到 oracle 数据库中。您可能需要 DBA 的帮助来执行其中的一些操作,他们也可能需要使用 dbms_java 程序包授予额外的访问权限。

然后使用您在实体化视图查询中创建的函数在处理过程中解密值。