如何将MD5哈希变为字符串?

max*_*mus 2 java eclipse algorithm md5

我想将MD5哈希变成一个字符串:

public String MD5ToString(String plain) {
    try {
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.reset();
        md.update(plain.getBytes());
        byte[] digest = md.digest();
        BigInteger bigInt = new BigInteger(1,digest);
        String hashtext = bigInt.toString(16);
        // Now we need to zero pad it if you actually want the full 32 chars.
        while(hashtext.length() < 32 ){
            hashtext = "0"+hashtext;
        }
        return plain;
    } catch (Exception e) {
        System.out.println("Cannot encrypt String to Hash");
        e.printStackTrace();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

但是我刚刚拿回Md5?什么是ms错误?

更新:

我将返回类型更改为hashtext,但是当我想将哈希转换为字符串时我只是得到另一个返回:

String: test
Hash: 098f6bcd4621d373cade4e832627b4f6
String: fb469d7ef430b0baf0cab6c436e70375
Run Code Online (Sandbox Code Playgroud)

Ada*_*der 5

我没有仔细分析代码,但是你返回了plain没有改变的对象.hashText如果要从方法返回MD5字符串,则应返回对象.