Oracle Security: Enkripsi Data


Procedure dan function yang berhubungan dengan algoritma enkripsi data dapat ditemukan di package DBMS_CRYPTO. Aku mencoba latihan sederhana dengan membuat sebuah fungsi enkripsi seperti berikut:


create or replace FUNCTION ENKRIP
( nilai IN VARCHAR2, key IN VARCHAR2
) RETURN RAW AS
  
  nilai_raw RAW(2000);
  key_raw RAW(2000);
  nilai_terenkripsi RAW(2000);

BEGIN
  
  nilai_raw := utl_i18n.string_to_raw(nilai, 
    'AL32UTF8');
  key_raw := utl_i18n.string_to_raw(key, 
    'AL32UTF8');
  
  nilai_terenkripsi := dbms_crypto.encrypt(
    src => nilai_raw,
    typ => dbms_crypto.des_cbc_pkcs5,
    key => key_raw
  );
  
  return nilai_terenkripsi;
  
END ENKRIP;

Pada fungsi di atas, aku harus menerjemahkan nilai yang akan di-enkripsi beserta key-nya ke dalam tipe data RAW, karena fungsi DBMS_CRYPT.ENCRYPT hanya menerima data dalam format RAW. Contoh di atas menggunakan algoritma enkripsi DES. Berikut ini adalah fungsi yang melakukan decrypt:


create or replace FUNCTION DEKRIP
( nilai IN raw, key IN VARCHAR2
) RETURN VARCHAR2 AS
  
  nilai_raw RAW(2000);
  key_raw RAW(2000);
  nilai_dekrip RAW(2000);

BEGIN
  
  key_raw := utl_i18n.string_to_raw(key, 
    'AL32UTF8');
  
  nilai_dekrip := dbms_crypto.decrypt(
    src => nilai,
    typ => dbms_crypto.des_cbc_pkcs5,
    key => key_raw
  );
  
  return utl_i18n.raw_to_nchar(nilai_dekrip, 
    'AL32UTF8');
  
END DEKRIP;

Sebagai contoh, aku melakukan enkripsi data VARCHAR2 ‘JOCKI HENDRY’ dengan key ‘testtesttest’:


select enkrip('JOCKI HENDRY', 'testtesttest') from dual;

yang menghasilkan:


BEB9B507432B91E116EC3F07364E38C5

Hasil decrypt-nya di dapat dengan:


select dekrip('BEB9B507432B91E116EC3F07364E38C5', 'testtesttest') from dual;

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: