-2
我需要基于数据库中的少数表制作物化视图,但捕获的是,使用Jasypt对基础表中的少数列进行加密,并且需要所有列在物化视图中为纯文本。在Oracle中解密Jasypt加密信息
Oracle中有没有隐式函数可以用于Jasypt解密或者围绕编写自己的函数来实现这个功能?
PS:使用的加密是可解密的。
我需要基于数据库中的少数表制作物化视图,但捕获的是,使用Jasypt对基础表中的少数列进行加密,并且需要所有列在物化视图中为纯文本。在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软件包授予其他访问权限。
然后使用您在物化视图查询中创建的函数在处理值时解密值。
Jasypt的AES加密功能非常简单,所以我会说它应该相当简单。 –
你能为此建议语法吗? –
不,我不能,因为我没有使用Oracle数据库。 –