Convert MD5 array to String java

I've seen next solution:

    byte[] digest = md.digest(someDataByteArray);
    StringBuilder hex = new StringBuilder();
    for (byte b : digest) {
        hex.append(String.format("%02x", b));
    }

I'd use commons-codec

  • Base64 - Base64.encodeBase64(digestBytes)
  • Hex-string - Hex.encodeHex(digestBytes)

MessageDigest md = MessageDigest.getInstance("MD5");
byte[] arr = md.digest(bytesOfMessage);
return Base64.getEncoder().encodeToString(arr);

note: md5 is not considered as good hash algorithm anymore, consider choosing SHAs


// Convert to hex string
StringBuffer sb = new StringBuffer();
for (int i = 0; i < messageDigest.length; i++) {
    if ((0xff & messageDigest[i]) < 0x10) {
        sb.append('0');
    }
    sb.append(Integer.toHexString(0xff & messageDigest[i]));
}
String md5 = sb.toString();

This assumes you actually want your MD5 printed as an hex string, not BASE64-encoded. That's the way it is normally represented.

Tags:

Java

Md5