public static String hexMD5(final byte[] data) {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");

            md5.reset();
            md5.update(data);
            byte[] digest = md5.digest();

            return toHex(digest);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("Error - this implementation of Java doesn't support MD5.");
        }
    }
public static String hexMD5(final byte[] data) {
        try {
            MessageDigest md5 = MessageDigest.getInstance("MD5");

            md5.reset();
            md5.update(data);
            byte[] digest = md5.digest();

            return toHex(digest);
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("Error - this implementation of Java doesn't support MD5.");
        }
    }
public static String hexMD5 ( final byte [ ] data ) { try { MessageDigest md5 = MessageDigest . getInstance ( "MD5" ) ; md5 . reset ( ) ; md5 . update ( data ) ; byte [ ] digest = md5 . digest ( ) ; return toHex ( digest ) ; } catch ( NoSuchAlgorithmException e ) { throw new RuntimeException ( "Error - this implementation of Java doesn't support MD5." ) ; } }
Produce hex representation of the MD5 digest of a byte array.

@param data bytes to digest
@return hex string of the MD5 digest
Produce hex representation of the MD5 digest of a byte array .