Java 的 MD5 哈希问题

发布于 2024-08-08 23:39:51 字数 564 浏览 4 评论 0原文

如果我作为独立应用程序运行或在 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();

如果您能帮助我们解决这个问题,我们将不胜感激。

A java implementation creates two different digest for a same input string, if i run as stand alone application or running inside a web application.

The standalone application matches with oracle dbms
The implementation is

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

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

    newHash = convertToString(newHashByte);

Hex to String conversion implementation is

StringBuffer result = new StringBuffer(64);

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

return result.toString();

Highly appreciate if you could help us resolving this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

回忆那么伤 2024-08-15 23:39:51

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

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

I suspect you have different default encodings. Use the correct encoding like this,

newHashByte = md5.digest(msg.getBytes("utf-8"));
素衣风尘叹 2024-08-15 23:39:51

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

Where does msg come from in each case? I think it's likely you have a newline character on the end in one case but not the other. It's also possible that your character encodings are set differently somehow in the two scenarios. I highly doubt that anything else in your example is changing except msg.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文