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