[英]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.