在Oracle中解密Jasypt加密信息

时间:2016-08-08 08:38:02

标签: sql oracle encryption jasypt

我需要基于我们数据库中的一些表来制作物化视图,但问题是,基础表中的几列是使用Jasypt加密的,并且所有列都必须是物化中的纯文本视图。

Oracle中是否有任何可用于Jasypt解密的隐式函数或任何围绕编写自己的函数来实现此功能的建议?

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

1 个答案:

答案 0 :(得分:1)

您可以在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;
  }
}

创建存储的proc包装器,如下所示:

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包授予其他访问权限。

然后使用您在物化视图查询中创建的函数在处理时解密值。