Ini salah satu cara mengenskripsi data/password 
di Oracle

PASSWORD ENCRYPTION
===================

1. Buat Package namanya terserah aja...disini dibuat
TOOLKIT

-- Package header

CREATE OR REPLACE PACKAGE toolkit AS
  FUNCTION encrypt (p_text  IN  VARCHAR2) RETURN RAW;
  FUNCTION decrypt (p_raw  IN  RAW) RETURN VARCHAR2;
END toolkit;
/

-- 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 RAW
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  RAW) 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;
/


2. buat tabel yang akan diencrypt, kalo sudah ada ya
tidak usah buat lagi,

misalnya disini dibuat table USER_PASSWORD dengan dua
kolom, yaitu:

USER_NAME
PASSWORD

CREATE TABLE user_password (
  username      VARCHAR2(20),
  password      RAW(16)
);

perhatikan, untuk kolom PASSWORD tipe data dibuat
RAW(16).


3. buat trigger yang akan meng-encrypt kolom PASSWORD
setiap insert atau update kolom PASSWORD.

CREATE OR REPLACE TRIGGER encrypted_password
BEFORE INSERT OR UPDATE ON user_password
FOR EACH ROW
DECLARE
BEGIN
  :new.password :=
toolkit.encrypt(UTL_RAW.cast_to_varchar2(:new.password));
END;
/

CATATAN :

:NEW.PASSWORD,  kata PASSWORD-nya disesuaikan dengan
kolom yg digunakan untuk menyimpan password. Kalo
nanti kolom untuk menyimpan password dikasih nama
SANDI ya ganti dengan :NEW.SANDI.



4. coba insert data ke tabel USER_PASSWORD

INSERT INTO user_password (username, password)
VALUES ('aulia', UTL_RAW.cast_to_raw('oracle'));

5. Lihat data di tabel user_password

SQL> select * FROM USER_PASSWORD;

USERNAME             PASSWORD
-------------------- --------------------------------
aulia                 765C1D8A96D2498906A4BF2E431E13EA


SQL> select username,toolkit.decrypt(password)
password
     from user_password;

USERNAME             PASSWORD
-------------------- --------------------------------
uben                 oracle


Demikian penjelasan dari saya mengenai Encrypt untuk
Password.

Semoga membantu


Salam

W.B. Aulia



--- Heriyanto KO <[EMAIL PROTECTED]> menulis:

> dear all,
> 
> saya mau nanya nih...
> gimana caranya enkripsi password di oracle.
> supaya password tidak bisa dilihat via query atau
> OEM.
> 
> thanks
> 
>               
> ---------------------------------
> Yahoo! Music Unlimited - Access over 1 million
> songs.Try it free. 
> 
> [Non-text portions of this message have been
> removed]
> 
> 



        

        
                
_______________________________________________________________________________ 
Apakah Anda Yahoo!?
Kunjungi halaman depan Yahoo! Indonesia yang baru! 
http://beta.id.yahoo.com/




------------------------ Yahoo! Groups Sponsor --------------------~--> 
Great things are happening at Yahoo! Groups.  See the new email design.
http://us.click.yahoo.com/TISQkA/hOaOAA/yQLSAA/PhFolB/TM
--------------------------------------------------------------------~-> 

--
-----------I.N.D.O - O.R.A.C.L.E---------------
Keluar: [EMAIL PROTECTED]
Website: http://indo-oracle.blogspot.com
Mirror: http://indooracle.wordpress.com
-----------------------------------------------

Bergabung dengan Indonesia Thin Client User Groups, 
Terminal Server, Citrix, New Moon Caneveral, di:
http://indo-thin.blogspot.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/indo-oracle/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 


Kirim email ke