Mas Reka,

Sepertinya anda salah dalam melakukan DECRYPT nya,
bukan pada program yg anda buat tapi pada test datanya.

ENCRYPT ==> OK
SQL> select branch_id, user_id, toolkit.encrypt(password) from 
m_user_system;

DECRYPT ==> NGGAK OK 
SQL> select branch_id, user_id, toolkit.decrypt(password) from 
m_user_system;

KENAPA?
Karena yg anda decrypt adalah "NILAI" yang plain (belum diencrypt)
Coba test pakai "decrypt(hasil_encrypt)" sbb:

SQL> select branch_id, user_id, TOOLKIT.DECRYPT(toolkit.encrypt
(password)) from m_user_system;

CMIIW,
Bowo





--- In [email protected], Reka Sukamto <[EMAIL PROTECTED]> 
wrote:
>
> Teman2,
>    
>   Saya mempunyai package sbb,sebagai informasi apabila saya 
menggunakan Oracle Database 10g Enterprise Edition Release 
10.1.0.2.0.
> ada eror seperti diatas. Tp saya coba di database 9i, tidak ada 
masalah.
> Mohon bantuannya kepada rekan2 sekalian, bila ada yg tau cara 
mengatasinya. 
>    
>   Terima kasih sebelumnya.
>    
>   -- Package header
> CREATE OR REPLACE PACKAGE MIRRORSYS.toolkit AS
> FUNCTION encrypt (p_text IN VARCHAR2) RETURN VARCHAR2;
> FUNCTION decrypt (p_raw IN VARCHAR2) RETURN VARCHAR2;
> END toolkit;
>   -- Package body
> -- Package Body
> CREATE OR REPLACE PACKAGE BODY toolkit AS
> g_key RAW(32767) := UTL_RAW.cast_to_raw('12345678');
> g_pad_chr VARCHAR2(1) := '~';
> PROCEDURE padstring (p_text IN OUT VARCHAR2);
> --
> --------------------------------------------------
> FUNCTION encrypt (p_text IN VARCHAR2) RETURN VARCHAR2
> IS
> --
> --------------------------------------------------
> l_text VARCHAR2(32767) := p_text;
> l_encrypted RAW(32767);
> BEGIN
> padstring(l_text);
> DBMS_OBFUSCATION_TOOLKIT.desencrypt(input =>
> UTL_RAW.cast_to_raw(l_text),key => g_key,
> encrypted_data => l_encrypted);
> RETURN l_encrypted;
> END;
> --
> --------------------------------------------------
> --
> --------------------------------------------------
> FUNCTION decrypt (p_raw IN VARCHAR2) RETURN VARCHAR2 IS
> --
> --------------------------------------------------
> l_decrypted VARCHAR2(32767);
> BEGIN
> DBMS_OBFUSCATION_TOOLKIT.desdecrypt(input =>
> p_raw,
> key =>
> g_key,
> decrypted_data
> => l_decrypted);
> RETURN
> RTrim(UTL_RAW.cast_to_varchar2(l_decrypted),
> g_pad_chr);
> END;
> --
> --------------------------------------------------
> --
> --------------------------------------------------
> PROCEDURE padstring (p_text IN OUT VARCHAR2) IS
> --
> --------------------------------------------------
> l_units NUMBER;
> BEGIN
> IF LENGTH(p_text) MOD 8 > 0 THEN
> l_units := TRUNC(LENGTH(p_text)/8) + 1;
> p_text := RPAD(p_text, l_units * 8, g_pad_chr);
> END IF;
> END;
> --
> --------------------------------------------------
> END toolkit;
> /
>        
> SQL> select branch_id, user_id, toolkit.encrypt(password) from 
m_user_system;
>   BRA USER_ID                                  TOOLKIT.ENCRYPT
(PASSWORD)
> --- ---------------------------------------- ----------------------
---------------------------------
> 888 reka2                                    
83220A4B17510E04BC93CE8BF322E950
> 888 aa                                       4BDC506014466A73
> 888 re                                       29816F4C8FFA41CF
> 888 cc                                       
5206E93E1B30E08B6125B84E91589B01
> DPK toni                                     
5AEE323589D1C514C8E7D8AF3624E8DB942C46AE56F76A4A24F6FEFDE8D7C5CB2A551
A75C0268D5D8
> 
>   5 rows selected.
>       
> SQL> select branch_id, user_id, toolkit.decrypt(password) from 
m_user_system;
> ERROR:
> ORA-28232: invalid input length for obfuscation toolkit
> ORA-06512: at "SYS.DBMS_OBFUSCATION_TOOLKIT_FFI", line 40
> ORA-06512: at "SYS.DBMS_OBFUSCATION_TOOLKIT", line 138
> ORA-06512: at "MIRRORSYS.TOOLKIT", line 31
>    
>   no rows selected
> 
>        
> ---------------------------------
> Be a better Heartthrob. Get better relationship answers from 
someone who knows.
> Yahoo! Answers - Check it out. 
> 
> [Non-text portions of this message have been removed]
>


Kirim email ke