create or replace function myencrypt_str(
p_str varchar2,
p_key varchar2 default 'oracle')
return varchar2
is
v_str varchar2(16);
v_str2 varchar2(32);
v_txt_string varchar2(16);
v_key varchar2(16) := p_key;
v_key_str varchar2(16);
v_key_raw raw(128);
v_str_raw raw(128);
v_encrypted_str varchar2(32);
v_return varchar2(32);
v_tmp number;
begin
select vsize(trim(p_str))
into v_tmp
from dual;
if v_tmp < 32 then
select trim(p_str)
into v_str from dual;
select rpad(v_key, 16, chr(255)),
rpad(v_str, 16, chr(255))
into v_key_str, v_txt_string
from dual;
v_key_raw := utl_raw.cast_to_raw(v_key_str);
v_str_raw := utl_raw.cast_to_raw(v_txt_string);
sys.dbms_obfuscation_toolkit.desencrypt(
input=>v_str_raw,
key=>v_key_raw,
encrypted_data=>v_encrypted_str);
v_return := trim(v_encrypted_str);
else
v_str2 := p_str;
v_return := v_str2;
end if;
return v_return;
EXCEPTION
when others then
raise;
end myencrypt_str;
------------------------------------------------------------------------
create or replace function mydecrypt_str(
p_str varchar2,
p_key varchar2 default 'oracle')
return varchar2
is
v_str varchar2(32) := p_str;
v_txt_string varchar2(16);
v_key varchar2(16) := p_key;
v_key_str varchar2(16);
v_key_raw raw(128);
v_tmp varchar2(32);
v_str_raw raw(128);
v_encrypted_str varchar2(32);
v_decrypted_str varchar2(32);
v_return varchar2(32);
v_tmp2 number;
begin
select vsize(trim(v_str))
into v_tmp2
from dual;
if not v_tmp2 < 32 then
select rpad(v_key, 16, chr(255)),
rpad(v_str, 16, chr(255))
into v_key_str,
v_txt_string
from dual;
v_key_raw := utl_raw.cast_to_raw(v_key_str);
v_str_raw := utl_raw.cast_to_raw(v_txt_string);
sys.dbms_obfuscation_toolkit.desdecrypt(
input=>v_str,
key=>v_key_raw,
decrypted_data=>v_decrypted_str);
v_tmp := utl_raw.cast_to_varchar2(v_decrypted_str);
select replace(v_tmp, chr(255), null)
into v_return
from dual;
else
v_return := '- No encryption detected -';
end if;
return v_return;
EXCEPTION
when others then
raise;
end mydecrypt_str;
p_str varchar2,
p_key varchar2 default 'oracle')
return varchar2
is
v_str varchar2(16);
v_str2 varchar2(32);
v_txt_string varchar2(16);
v_key varchar2(16) := p_key;
v_key_str varchar2(16);
v_key_raw raw(128);
v_str_raw raw(128);
v_encrypted_str varchar2(32);
v_return varchar2(32);
v_tmp number;
begin
select vsize(trim(p_str))
into v_tmp
from dual;
if v_tmp < 32 then
select trim(p_str)
into v_str from dual;
select rpad(v_key, 16, chr(255)),
rpad(v_str, 16, chr(255))
into v_key_str, v_txt_string
from dual;
v_key_raw := utl_raw.cast_to_raw(v_key_str);
v_str_raw := utl_raw.cast_to_raw(v_txt_string);
sys.dbms_obfuscation_toolkit.desencrypt(
input=>v_str_raw,
key=>v_key_raw,
encrypted_data=>v_encrypted_str);
v_return := trim(v_encrypted_str);
else
v_str2 := p_str;
v_return := v_str2;
end if;
return v_return;
EXCEPTION
when others then
raise;
end myencrypt_str;
------------------------------------------------------------------------
create or replace function mydecrypt_str(
p_str varchar2,
p_key varchar2 default 'oracle')
return varchar2
is
v_str varchar2(32) := p_str;
v_txt_string varchar2(16);
v_key varchar2(16) := p_key;
v_key_str varchar2(16);
v_key_raw raw(128);
v_tmp varchar2(32);
v_str_raw raw(128);
v_encrypted_str varchar2(32);
v_decrypted_str varchar2(32);
v_return varchar2(32);
v_tmp2 number;
begin
select vsize(trim(v_str))
into v_tmp2
from dual;
if not v_tmp2 < 32 then
select rpad(v_key, 16, chr(255)),
rpad(v_str, 16, chr(255))
into v_key_str,
v_txt_string
from dual;
v_key_raw := utl_raw.cast_to_raw(v_key_str);
v_str_raw := utl_raw.cast_to_raw(v_txt_string);
sys.dbms_obfuscation_toolkit.desdecrypt(
input=>v_str,
key=>v_key_raw,
decrypted_data=>v_decrypted_str);
v_tmp := utl_raw.cast_to_varchar2(v_decrypted_str);
select replace(v_tmp, chr(255), null)
into v_return
from dual;
else
v_return := '- No encryption detected -';
end if;
return v_return;
EXCEPTION
when others then
raise;
end mydecrypt_str;