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 | |---------------------------------------|