CREATE OR REPLACE PACKAGE Crypt AS
   FUNCTION enc( str VARCHAR2,
                     passwd VARCHAR2 ) RETURN VARCHAR2;

   FUNCTION DEC( str VARCHAR2,
                     passwd VARCHAR2 ) RETURN VARCHAR2;
END Crypt;
/




CREATE OR REPLACE PACKAGE BODY Crypt AS
   crypted_string VARCHAR2(2000);

   FUNCTION enc( str VARCHAR2,
                     passwd VARCHAR2 ) RETURN VARCHAR2 AS
   pieces_of_eight INTEGER := ((FLOOR(LENGTH(Str)/8 + .9)) * 8);

   BEGIN

      dbms_obfuscation_toolkit.DESEncrypt(
               input_string     => RPAD( str, pieces_of_eight ),
               key_string       => RPAD(passwd,8,'#'),
               encrypted_string => crypted_string );
      RETURN crypted_string;
   END;

   FUNCTION DEC( str VARCHAR2,
                     passwd VARCHAR2 ) RETURN VARCHAR2 AS
   BEGIN
      dbms_obfuscation_toolkit.DESDecrypt(
               input_string     => str,
               key_string       => RPAD(passwd,8,'#'),
               decrypted_string => crypted_string );
      RETURN trim(crypted_string);
   END;
END Crypt;
/


'Db > Oracle' 카테고리의 다른 글

Oracle Sequence Sample  (2) 2010.04.06
Oracle Package Procedure Sample  (2) 2010.04.06
Oracle Job sample  (3) 2010.04.06
Oracle function sample  (4) 2010.04.06
Oracle 세로 데이터를 가로로 표현  (1) 2010.04.06