Tuesday, January 18, 2011

MD5 Hash Function for Oracle

Basically there are 2 functions needed. Some people prefer the raw hash instead of the hex equivalent.
1. md5raw - for encoding text in raw md5 hash
2. md5 - for converting raw md5 hash to hex.


Here’s the code for the md5raw function.



create or replace
function md5raw (text in varchar2)
return varchar2 is
hash_value varchar2(20);
begin
hash_value := dbms_obfuscation_toolkit.md5 (input_string => text);
return hash_value;
end;

and the code for the md5 function.



create or replace
function md5(text in varchar2)
return varchar2 is
hash_value varchar2(32);
begin
select lower(rawtohex(md5raw(text)))
into hash_value
from dual;
return hash_value;
end;

Now you can do something like this.



select md5('koala') from dual;

|---------------------------------------|
|MD5('koala') |
|---------------------------------------|
|a564de63c2d0da68cf47586ee05984d7 |
|---------------------------------------|

No comments: