【问题标题】:MD5 Hash Issue with JavaJava 的 MD5 哈希问题
【发布时间】:2009-10-20 23:21:39
【问题描述】:

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

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

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

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

    newHash = convertToString(newHashByte);

十六进制到字符串的转换实现是

StringBuffer result = new StringBuffer(64);

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

return result.toString();

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

【问题讨论】:

    标签: java md5


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      msg 在每种情况下都来自哪里?我认为在一种情况下你可能有一个换行符,但在另一种情况下没有。在这两种情况下,您的字符编码也可能以不同的方式设置。我非常怀疑除了msg 之外,您示例中的其他任何内容都在发生变化。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-08
        • 2014-05-19
        • 2012-08-17
        • 2011-12-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多