Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Problem Decrypting in-memory

Problem Decrypting in-memory

From: ohaya <ohaya_at_cox.net>
Date: Tue, 21 Jun 2005 11:00:42 -0400
Message-ID: <42B82B9A.A02E9330@cox.net>


Hi,

I have one procedure to encrypt:

CREATE or REPLACE PROCEDURE encrypt_password (key_string IN varchar2, uname IN varchar2, password IN varchar2) IS

input_string VARCHAR2(16) := to_char(password); encrypted_string VARCHAR2(2048);

raw_encrypted_data RAW(128);

BEGIN

	dbms_obfuscation_toolkit.DESEncrypt(
				input_string => input_string,
				key_string => key_string,
				encrypted_string => encrypted_string);
	raw_encrypted_data := UTL_RAW.CAST_TO_RAW(encrypted_string);
	dbms_output.put_line('Hex-RAW raw_encrypted_data: ' ||
rawtohex(raw_encrypted_data));
	UPDATE LHDB set secure_pwd = encrypted_string WHERE username = uname;
	COMMIT;

END;
/

When I execute that in SQLPlus, I get:

SQL> exec encrypt_password('12345678', 'test1', 'testtesttesttest'); Hex-RAW raw_encrypted_data: 7B62AA0B153BC965D7B8D0E529F6222A

PL/SQL procedure successfully completed.

SQL> Now, I have another procedure that I want to use to decrypt a password that is in memory (rather than in a table):

CREATE or REPLACE PROCEDURE decrypt_password_inmemory (key_string IN varchar2, encrypted_string IN varchar2, decrypted OUT varchar2) IS

encrypted_raw RAW(128) := UTL_RAW.CAST_TO_RAW(encrypted_string); key_raw RAW(128) := UTL_RAW.CAST_TO_RAW(key_string);

decrypted_raw RAW(128);
-- decrypted_string VARCHAR2(2048);

BEGIN

 	dbms_obfuscation_toolkit.DESDecrypt(
                 		input => encrypted_raw, 
 				key => key_raw, 
 				decrypted_data => decrypted_raw);
        
	decrypted := UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw);
	dbms_output.put_line('Decrypted Password is: ' || decrypted);
END;
/

When I try to execute this procedure, I'm getting what looks like RAW data?

SQL> var
variable x
datatype VARCHAR2(100)
SQL> exec decrypt_password_inmemory('12345678', '7B62AA0B153BC965D7B8D0E529F6222
A', :x);
Decrypted Password is: -¡-*|X_Ñ?=Ää˜KÿX+Xµ·4Gj+¦Æ+uP$n-

PL/SQL procedure successfully completed.

X


-¡-*|X_Ñ?=Ää˜KÿX+Xµ·4Gj+¦Æ+uP$n-

Can anyone tell me what's wrong with this 'in-memory' procedure?

How do I get the original password (testtesttesttest) back as a varchar2?

Thanks,
Jim Received on Tue Jun 21 2005 - 10:00:42 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US