|
|
|
|
|
|
|
|
Re: Converting text to ascii and vice versa at application level [message #348601 is a reply to message #347817] |
Wed, 17 September 2008 06:54   |
x_silent_freak_x
Messages: 5 Registered: September 2008 Location: Kuwait
|
Junior Member |
 
|
|
after some major googling... i came across this...
i modified it to serve my purpose and it does what i was looking for...
CREATE OR REPLACE PACKAGE Cryptit AS
FUNCTION encrypt( Str VARCHAR2 ) RETURN RAW;
FUNCTION decrypt( xCrypt VARCHAR2 ) RETURN VARCHAR2;
END Cryptit;
/
CREATE OR REPLACE PACKAGE BODY Cryptit AS
crypt_raw RAW(2000);
crypt_str VARCHAR(2000);
-- Encrypt the string --
FUNCTION encrypt( Str VARCHAR2 ) RETURN RAW AS
l INTEGER := LENGTH(str);
i INTEGER;
padblock RAW(2000);
Cle RAW(8) := UTL_RAW.CAST_TO_RAW('frankzap');
BEGIN
i := 8-MOD(l,8);
padblock := utl_raw.cast_to_raw(str||RPAD(CHR(i),i,CHR(i)));
dbms_obfuscation_toolkit.DESEncrypt(
input => padblock,
KEY => Cle,
encrypted_data => crypt_raw );
RETURN crypt_raw ;
END;
-- Decrypt the string --
FUNCTION decrypt( xCrypt VARCHAR2 ) RETURN VARCHAR2 AS
l NUMBER;
Cle RAW(8) := UTL_RAW.CAST_TO_RAW('frankzap');
crypt_raw RAW(2000) := utl_raw.cast_to_raw(utl_raw.cast_to_varchar2(xCrypt)) ;
BEGIN
dbms_obfuscation_toolkit.DESDecrypt(
input => xCrypt,
KEY => Cle,
decrypted_data => crypt_raw );
crypt_str := utl_raw.cast_to_varchar2(crypt_raw);
l := LENGTH(crypt_str);
crypt_str := RPAD(crypt_str,l-ASCII(SUBSTR(crypt_str,l)));
RETURN crypt_str;
END;
END Cryptit;
/
SQL> DECLARE
2 LC$Code VARCHAR2(100) := 'Music is the best!' ;
3 BEGIN
4
5 -- Get the encrypted string --
6 LC$Code := Cryptit.Encrypt( LC$Code ) ;
7 dbms_output.put_line( LC$Code ) ;
8
9 -- Get the decrypted string --
10 LC$Code := Cryptit.Decrypt( LC$Code ) ;
11 dbms_output.put_line( LC$Code ) ;
12
13 END ;
14
15 /
7840712517939382157F5BA660E3AAB094E9C2BA67FF4234
Music is the best!
thanks again for the dbms_obfuscation_toolkit suggestion as opposed to my initial ascii - text conversion thing...
|
|
|
|