数据加密,脱敏时需要用到自定义函数来完成。
一、使用函数将数据值进行转换后,新建表存储。
/*加密函数*/
CREATE OR REPLACE FUNCTION DS_FUNC_ENCRYPT_DES(P_TEXT VARCHAR2,
P_KEY VARCHAR2)
RETURN VARCHAR2 IS
V_TEXT VARCHAR2(4000);
V_ENC VARCHAR2(4000);
RAW_INPUT RAW(20000);
KEY_INPUT RAW(1000);
DECRYPTED_RAW RAW(20000);
V_ERRORTEXT VARCHAR2(500);
BEGIN
DBMS_OUTPUT.ENABLE(BUFFER_SIZE => NULL);
IF (P_TEXT IS NULL OR P_TEXT = '') THEN
RETURN '';
END IF;
DBMS_OUTPUT.PUT_LINE(P_TEXT);
V_TEXT := RPAD(P_TEXT, (TRUNC(LENGTHB(P_TEXT) / 8) + 1) * 8, CHR(0));
DBMS_OUTPUT.PUT_LINE(V_TEXT);
RAW_INPUT := UTL_I18N.STRING_TO_RAW(V_TEXT, 'ZHS16GBK');
KEY_INPUT := UTL_I18N.STRING_TO_RAW(P_KEY, 'ZHS16GBK');
DBMS_OBFUSCATION_TOOLKIT.DESENCRYPT(INPUT =>