Suatu ketika saya ada keperluan menggunakan fungsi MD5 di oracle. karena mencari-cari fungsi built in di oracle tidak ketemu, atau mungkin tidak ada akhirnya saya memutuskan untuk membuat Java Store Procedure. Untuk mempelajari lebih detail langkah-langkah membuat java store procedure anda bisa melihat postingan sebelumnya Java Store Procedure .

Langkah pertama membuat fungsi md5 di java

import java.security.MessageDigest;

public class MD5 {

    public static String getMD5(String message) {

        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            String md5string="";
            StringBuffer sb = new StringBuffer();
            byte buf[] = message.getBytes();
            byte[] md5 = md.digest(buf);
            System.out.println(message);
            for( int i = 0 ; i < md5.length ; i++ ) {
                String tmpStr = "0"+Integer.toHexString( (0xff & md5[i]));
                sb.append(tmpStr.substring(tmpStr.length()-2));
            }
            md5string = sb.toString();
            return (md5string);
        }
        catch (Exception e)
        {
            System.out.println(e);
            return "0";
        }
    }
}

Kemudian kita compile

#javac MD5.java

Jika tidak ada error akan menghasilkan MD5.class, kemudian kit aload ke oracle

 loadjava -resolve -user scott/tiger MD5.class

Publish fungsi Java Store Procedure dengan membuat interface di oracle :

CREATE OR REPLACE FUNCTION GetMD5(str in varchar) RETURN VARCHAR2
as LANGUAGE JAVA
NAME 'MD5.getMD5(java.lang.String) return java.lang.String';

kemudian kita coba

select GetMD5('gatotkaca') from dual;

GETMD5('gatotkaca')
============================
4495ca9b8bb44554754c5ed33a33fef9

selamat mencoba !!!

semua script yang ada pada halaman ini bisa anda download di sini