einfaches Ver- und Entschlüsseln


Mit Hilfe der Funtion f_str_hide können varchar2 Felder verschlüsselt werden.
Ein bereits verschlüsseltes Feld wird durch erneuten Aufruf der Funktion wieder entschlüsselt.

Beispiel


select dump('Hello World') dump from dual
DUMP
-------------------------------------------------------
Typ=96 Len=11: 72,101,108,108,111,32,87,111,114,108,100
1 row selected

select dump(f_str_hide('Hello World')) entschlüsselt from dual
ENTSCHLÜSSELT                                                                   
--------------------------------------------------------------------------------
Typ=1 Len=11: 88,59,52,52,49,32,73,49,46,52,60                                  
1 row selected

select f_str_hide('Hello World') verschlüsselt from dual
VERSCHLÜSSELT                                                                   
--------------------------------------------------------------------------------
X;441 I1.4<                                                                     
1 row selected

select f_str_hide('X;441 I1.4<') entschlüsselt from dual
ENTSCHLÜSSELT
--------------------------------------------------------------------------------
Hello World
1 row selected

Quellcode


CREATE OR REPLACE function f_str_hide (p_string varchar2) return varchar2
is
-- ***********************************************************************************************
--    Copyright (c) 2005 Gregor Neveling
--
--    NAME              f_str_hide
--
--    Funktion:         einfaches Ver- Entschlüsseln von varchar2 Feldern
--
--    PARAMETER:        zu ver- entschlüsselnder Text
--
--    return            Text
--
--    CREATED           24.06.2005 Gregor Neveling
--
-- ***********************************************************************************************
v_string varchar2(2000);
i number(4);


begin
    SELECT TRANSLATE(p_string,
		'~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)(&%$#"!',
		'!"#$%&()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~')
        into v_string
		from dual;		
   return v_string;
exception
   when others then
   return p_string;
end f_str_hide;
/

Inhalt