来自SUN的MD5消息摘要,<in progress =“”> </in>

时间:2013-12-03 17:49:45

标签: java ubuntu md5 openjdk xubuntu

我尝试使用Java获取MD5字符串,但下面的函数返回字符串"MD5 Message Digest from SUN, <in progress>"

public String hash(String value) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update(value.getBytes("UTF-8"));
        return md.toString();
    } catch (NoSuchAlgorithmException e) {
        return null;
    } catch (UnsupportedEncodingException e) {
        return null;
    }
}

我在Xubuntu上使用OpenJDK。为什么我收到这条消息?有没有办法使用此设置获取MD5哈希?

2 个答案:

答案 0 :(得分:0)

一种选择是使用commons-codec.jar。查看API

String value = "YourValue";
System.out.println(DigestUtils.md5Hex( value ));

答案 1 :(得分:0)

我找到了有效的解决方案,

public String byteToHexString(byte[] input) {
    String output = "";
    for (int i=0; i<input.length; ++i) {
        output += String.format("%02X", input[i]);
    }
    return output;
}

public String hash(String value) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        return byteToHexString(md.digest(value.getBytes("UTF-8")));
    } catch (NoSuchAlgorithmException e) {
        return null;
    } catch (UnsupportedEncodingException e) {
        return null;
    }
}