Estaba buscando en la red alguna función que permitira encriptar cadenas a MD5. Encontré de todo tipo. Pero el que pasó la prueba de rigor fue este ejemplo:
http://paquesepas.wordpress.com/2008/07/09/md5-hexadecimal-hashing-en-java/
En resumen, el código final es este:
``
<br /><span style="color:#7f0055;"><b>private static final </b></span><span style="color:#7f0055;"><b>char</b></span><span style="color:#000000;">[] </span><span style="color:#000000;">HEXADECIMAL = </span><span style="color:#000000;">{ </span><span style="color:#990000;">'0'</span><span style="color:#000000;">, </span><span style="color:#990000;">'1'</span><span style="color:#000000;">, </span><span style="color:#990000;">'2'</span><span style="color:#000000;">, </span><span style="color:#990000;">'3'</span><span style="color:#000000;">,</span><br /><span style="color:#ffffff;"> </span><span style="color:#990000;">'4'</span><span style="color:#000000;">, </span><span style="color:#990000;">'5'</span><span style="color:#000000;">, </span><span style="color:#990000;">'6'</span><span style="color:#000000;">, </span><span style="color:#990000;">'7'</span><span style="color:#000000;">, </span><span style="color:#990000;">'8'</span><span style="color:#000000;">, </span><span style="color:#990000;">'9'</span><span style="color:#000000;">, </span><span style="color:#990000;">'a'</span><span style="color:#000000;">, </span><span style="color:#990000;">'b'</span><span style="color:#000000;">, </span><span style="color:#990000;">'c'</span><span style="color:#000000;">, </span><span style="color:#990000;">'d'</span><span style="color:#000000;">, </span><span style="color:#990000;">'e'</span><span style="color:#000000;">, </span><span style="color:#990000;">'f' </span><span style="color:#000000;">}</span><span style="color:#000000;">;</span><br /><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>public </b></span><span style="color:#000000;">String hash</span><span style="color:#000000;">(</span><span style="color:#000000;">String stringToHash</span><span style="color:#000000;">) {</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>try </b></span><span style="color:#000000;">{</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">MessageDigest md = MessageDigest.getInstance</span><span style="color:#000000;">(</span><span style="color:#2a00ff;">"MD5"</span><span style="color:#000000;">)</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>byte</b></span><span style="color:#000000;">[] </span><span style="color:#000000;">bytes = md.digest</span><span style="color:#000000;">(</span><span style="color:#000000;">stringToHash.getBytes</span><span style="color:#000000;">())</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">StringBuilder sb = </span><span style="color:#7f0055;"><b>new </b></span><span style="color:#000000;">StringBuilder</span><span style="color:#000000;">(</span><span style="color:#990000;">2 </span><span style="color:#000000;">* bytes.length</span><span style="color:#000000;">)</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>for </b></span><span style="color:#000000;">(</span><span style="color:#7f0055;"><b>int </b></span><span style="color:#000000;">i = </span><span style="color:#990000;">0</span><span style="color:#000000;">; i < bytes.length; i++</span><span style="color:#000000;">) {</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>int </b></span><span style="color:#000000;">low = </span><span style="color:#000000;">(</span><span style="color:#7f0055;"><b>int</b></span><span style="color:#000000;">)(</span><span style="color:#000000;">bytes</span><span style="color:#000000;">[</span><span style="color:#000000;">i</span><span style="color:#000000;">] </span><span style="color:#000000;">& </span><span style="color:#990000;">0x0f</span><span style="color:#000000;">)</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>int </b></span><span style="color:#000000;">high = </span><span style="color:#000000;">(</span><span style="color:#7f0055;"><b>int</b></span><span style="color:#000000;">)((</span><span style="color:#000000;">bytes</span><span style="color:#000000;">[</span><span style="color:#000000;">i</span><span style="color:#000000;">] </span><span style="color:#000000;">& </span><span style="color:#990000;">0xf0</span><span style="color:#000000;">) </span><span style="color:#000000;">>> </span><span style="color:#990000;">4</span><span style="color:#000000;">)</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">sb.append</span><span style="color:#000000;">(</span><span style="color:#000000;">HEXADECIMAL</span><span style="color:#000000;">[</span><span style="color:#000000;">high</span><span style="color:#000000;">])</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">sb.append</span><span style="color:#000000;">(</span><span style="color:#000000;">HEXADECIMAL</span><span style="color:#000000;">[</span><span style="color:#000000;">low</span><span style="color:#000000;">])</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">}</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>return </b></span><span style="color:#000000;">sb.toString</span><span style="color:#000000;">()</span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">} </span><span style="color:#7f0055;"><b>catch </b></span><span style="color:#000000;">(</span><span style="color:#000000;">NoSuchAlgorithmException e</span><span style="color:#000000;">) {</span><br /><span style="color:#ffffff;"> </span><span style="color:#3f7f5f;">//exception handling goes here</span><br /><span style="color:#ffffff;"> </span><span style="color:#7f0055;"><b>return null</b></span><span style="color:#000000;">;</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">}</span><br /><span style="color:#ffffff;"> </span><span style="color:#000000;">}</span>
La explicación de todo el código, está en el mismo blog del autor