Saya attach-kan kembali message serupa yg pernah dikirim sama pak Tomi
Wijanto.
Karena tidak bisa dekripsi ulang, jika lupa user/password harus create
ulang.
Selama ini saya pake konsep ini dan sejauh ini memang yg paling aman.
rgds,
Awal
Tomi Wijanto wrote:
> Kalau bisa jangan pakai tipe enkripsi/dekripsi utk
> kolom password, karena cara itu memungkinkan orang utk
> mendekripsi password-nya (cuma perlu tahu algoritma
> dan mengakses kolom password, biasanya dapat dilakukan
> oleh orang dalam).
>
> Cara paling baik mungkin dengan menggunakan hash,
> dimana tidak ada proses dekripsi. Kira2 prosesnya akan
> seperti ini:
> 1. Proses penyimpanan (administrasi)
> - User (atau admin) meng-input user_id dan user_pwd
> - Lakukan hash dari user_pwd utk menghasilkan hash
> string
> - Simpan hash string tersebut ke kolom tabel
>
> 2. Proses pengecekan
> - User meng-input user_id dan user_pwd
> - Lakukan hash dari user_pwd utk menghasilkan hash
> string
> - Bandingkan hash string tersebut dengan hash string
> yg tersimpan di tabel.
>
> Prosedur sederhana kira2 seperti ini:
>
> create or replace function hash_pwd
> (
> p_user in varchar2,
> p_pwd in varchar2
> ) return varchar2 is
>
> v_input_raw raw(100);
> v_output_str varchar2(200);
> begin
> --format input
> v_input_raw := utl_raw.cast_to_raw( p_user || p_pwd
> );
> --get hash value
> v_output_str := dbms_obfuscation_toolkit.md5( input
> => v_input_raw );
>
> return v_output_str;
> end hash_pwd;
> /
>
>
> select hash_pwd('aku','password') from dual;
>
> HASH_PWD('AKU','PASSWORD')
> --------------------------
> C8CA25D265C49962505325B012BA798D
>
>
> Coba akses website asktom.oracle.com, disana banyak
> pembahasan topik serupa.
>
> regards,
> tomi
antok2486 wrote:
>
> Rekan-rekan ada yang tau ga function di oracle untuk encrypt decrypt.
> Misal :
> Sewaktu Insert :
> Insert Into User(Username,Password) Values(username,Encrypt(password))
> Sewaktu Select :
> Select Username, Decrypt(password)
> From User
>
> Please kasi tau function-nya...?
>
>