如果我作为独立应用程序运行或在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();
非常感谢您能帮我们解决这个问题。
答案 0 :(得分:7)
我怀疑你有不同的默认编码。使用正确的编码,
newHashByte = md5.digest(msg.getBytes("utf-8"));
答案 1 :(得分:2)
msg
来自哪里?我认为你可能在一个案例中有一个换行符而不是另一个案例。在两种情况下,您的角色编码也可能以某种方式设置。我非常怀疑你的例子中的任何其他内容都在改变,msg
除外。