Java的MD5哈希问题

时间:2009-10-20 23:21:39

标签: java md5

如果我作为独立应用程序运行或在Web应用程序中运行,则java实现会为同一输入字符串创建两个不同的摘要。

独立应用程序与oracle dbms匹配 实施是

    MessageDigest md5 = MessageDigest.getInstance("MD5");

    if (md5 != null) {
        md5.reset();
        newHashByte = md5.digest(msg.getBytes());
    }

    newHash = convertToString(newHashByte);

Hex to String转换实现

StringBuffer result = new StringBuffer(64);

for (int i = 0; i < digestBits.length; i++)
    hexDigit(result, digestBits[i]);

return result.toString();

非常感谢您能帮我们解决这个问题。

2 个答案:

答案 0 :(得分:7)

我怀疑你有不同的默认编码。使用正确的编码,

newHashByte = md5.digest(msg.getBytes("utf-8"));

答案 1 :(得分:2)

msg来自哪里?我认为你可能在一个案例中有一个换行符而不是另一个案例。在两种情况下,您的角色编码也可能以某种方式设置。我非常怀疑你的例子中的任何其他内容都在改变,msg除外。