Convert MD5 array to String java

后端 未结 5 991
一个人的身影
一个人的身影 2020-12-16 00:29

I know that there is a lot of similar topics, but still... can someone provide me a working example of method which generates MD5 String.
I\'m currently using MessageDig

相关标签:
5条回答
  • 2020-12-16 00:52
    // 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.

    0 讨论(0)
  • 2020-12-16 00:54

    I'd use commons-codec

    • Base64 - Base64.encodeBase64(digestBytes)
    • Hex-string - Hex.encodeHex(digestBytes)
    0 讨论(0)
  • 2020-12-16 00:55
    import javax.xml.bind.DatatypeConverter;
    import java.security.MessageDigest;
    
    ...
    String input = "westerngun";
    MessageDigest digest = MessageDigest.getInstance("MD5"); // not thread-safe, create instance for each thread
    byte[] result = digest.digest(input.getBytes()); // get MD5 hash array, could contain negative
    String hex = DatatypeConverter.printHexBinary(result).toLowerCase(); // convert byte array to hex string
    

    If you want a number:

    Integer number = Integer.parseInt(hex, 16); // parse hex number to integer. If overflowed, use Long.parseLong()
    
    0 讨论(0)
  • 2020-12-16 01:09

    I've seen next solution:

        byte[] digest = md.digest(someDataByteArray);
        StringBuilder hex = new StringBuilder();
        for (byte b : digest) {
            hex.append(String.format("%02x", b));
        }
    
    0 讨论(0)
  • 2020-12-16 01:15
    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

    0 讨论(0)
提交回复
热议问题