在 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 程序包授予额外的访问权限。
然后使用您在实体化视图查询中创建的函数在处理过程中解密值。
我需要基于我们数据库中的几个表创建一个物化视图,但要注意的是,基础表中的几个列是使用 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 程序包授予额外的访问权限。
然后使用您在实体化视图查询中创建的函数在处理过程中解密值。