Enkripsi dengan Oracle Package


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;

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

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

Foto Google+

You are commenting using your Google+ 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 )

w

Connecting to %s