CREATE OR REPLACE PACKAGE PASSWD_MNM IS input_string VARCHAR2(16) := 'tigertigertigert'; raw_input RAW(128) := UTL_RAW.CAST_TO_RAW(input_string); key_string VARCHAR2(8) := 'scottsco'; raw_key RAW(128) := UTL_RAW.CAST_TO_RAW(key_string); encrypted_raw RAW(2048); encrypted_string VARCHAR2(2048); decrypted_raw RAW(2048); decrypted_string VARCHAR2(2048); error_in_input_buffer_length EXCEPTION; PRAGMA EXCEPTION_INIT(error_in_input_buffer_length, -28232); INPUT_BUFFER_LENGTH_ERR_MSG VARCHAR2(100) := '*** DES INPUT BUFFER NOT A MULTIPLE OF 8 BYTES - IGNORING EXCEPTION ***'; double_encrypt_not_permitted EXCEPTION; PRAGMA EXCEPTION_INIT(double_encrypt_not_permitted, -28233); DOUBLE_ENCRYPTION_ERR_MSG VARCHAR2(100) := '*** CANNOT DOUBLE ENCRYPT DATA - IGNORING EXCEPTION ***'; PROCEDURE FuEncrypt(userid in varchar2,password in varchar2); PROCEDURE FuDecrypt(userid_parm in varchar2); /****************************************************************************** CREATE TABLE "SCOTT".EMEMBERS (EM_ID VARCHAR2(20) NOT NULL, EM_PASSWORD VARCHAR2(2048) NOT NULL, CONSTRAINT PK_EMEMBER PRIMARY KEY (EM_ID)); NAME: PACKAGE PASSWD_MNM PURPOSE: Testing encrypt and decrypt function. REVISIONS: Ver Date Author Description --------- ---------- --------------- ------------------------------------ 1.0 20-AUG-2001 TYRANNO 1. Created this package. PARAMETERS: INPUT: OUTPUT: RETURNED VALUE: CALLED BY: CALLS: EXAMPLE USE: ASSUMPTIONS: LIMITATIONS: ALGORITHM: NOTES: Here is the complete list of available Auto Replace Keywords: Object Name: PACKAGE PASSWD_MNM Sysdate: 20-AUG-2001 Date/Time: 13:56:00 Date: 20-AUG-2001 Time: 13:56:00 Username: TYRANNO ******************************************************************************/ END PASSWD_MNM; / CREATE OR REPLACE PACKAGE BODY PASSWD_MNM AS PROCEDURE FuEncrypt(userid in varchar2,password in varchar2) IS TmpVar NUMBER; BEGIN input_string := password; dbms_output.put_line('> input string : ' || input_string); dbms_obfuscation_toolkit.DESEncrypt( input_string => input_string, key_string => key_string, encrypted_string => encrypted_string ); insert into EMEMBERS values(userid,encrypted_string); EXCEPTION WHEN NO_DATA_FOUND THEN Null; WHEN error_in_input_buffer_length THEN dbms_output.put_line(' ' || INPUT_BUFFER_LENGTH_ERR_MSG); WHEN OTHERS THEN Null; END FuEncrypt; PROCEDURE FuDecrypt(userid_parm in varchar2) IS TmpVar NUMBER; BEGIN tmpVar := 0; select EM_PASSWORD into encrypted_string from EMEMBERS where EMEMBERS.EM_ID = userid_parm; dbms_obfuscation_toolkit.DESDecrypt( input_string => encrypted_string, key_string => key_string, decrypted_string => decrypted_string ); dbms_output.put_line('> decrypted string output : ' || decrypted_string); EXCEPTION WHEN NO_DATA_FOUND THEN dbms_output.put_line(' No Data found '); WHEN error_in_input_buffer_length THEN dbms_output.put_line(' ' || INPUT_BUFFER_LENGTH_ERR_MSG); WHEN OTHERS THEN Null; END FuDecrypt; END PASSWD_MNM; / /