簡體   English   中英

Java的MD5哈希問題

[英]MD5 Hash Issue with Java

如果我作為獨立應用程序運行或在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();

非常感謝您能幫助我們解決這個問題。

我懷疑您有不同的默認編碼。 這樣使用正確的編碼,

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

msg來自哪里? 我認為在一種情況下,您最后可能會有換行符,但在另一種情況下,您可能沒有。 在兩種情況下,字符編碼的設置也可能有所不同。 我非常懷疑您的示例中除msg之外的其他任何更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM