Here's an easy way to get a String-form md5 sum of binary data. It's easier to use BigInteger to hex-encode the result, as for all practical purposes, Integer.toHexString and related Integer methods are broken, by not using leading zeros. The code is HERE

import java.math.BigInteger;


public class MD5 {

    public static void main(String[] args) {

     * Get a string form md5 digest of a byte array
     * @param data The byte array to be encoded
     * @return The md5-encoded String
    public static String asString(byte[] data) {
        String result = null;

        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            result = new BigInteger(1, md.digest(data)).toString(16);
        } catch (NoSuchAlgorithmException e) {

        return result;


Please support this site using the button below: