Db/Oracle

Oracle 암/복호화 Package Function Sample(dbms_obfuscation_toolkit)

seongsland 2010. 4. 6. 23:53
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;
/