Mas Yulius,
Terima kasih atas petunjuknya, setelah saya periksa lagi isi table ternyata
ada 2 record yg isi field 'password' belum di encrypt. Jadi saya hapus 2 record
tsb, dan saya jalankan lagi querynya dan ga ada eror.
Terima kasih, mas
RekA
Yulius Wibowo <[EMAIL PROTECTED]> wrote:
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]
>
---------------------------------
Get the free Yahoo! toolbar and rest assured with the added security of spyware
protection.
[Non-text portions of this message have been removed]