比较MD5字符串

时间:2011-10-27 15:08:53

标签: java string md5

我有一个java代码,我发送的md5已经通过套接字在另一端接收。我输入一个密码作为输入并创建自己的md5来检查通过套接字收到的md5进行身份验证。

两个md5字符串都具有相同的字节模式,但是当我对两个md5模式进行相等性测试时,String.equals()返回false。这怎么可能 ?。如果有人知道可能出错的地方,请帮忙吗?

1 个答案:

答案 0 :(得分:4)

MD5是byte[]。它的表示通常是一个十六进制字符串。需要注意的事项:

  • 构造十六进制字符串的方式应该相同
  • 确保您没有使用new String(bytes)。这使用默认编码,该编码因机器而异,编码可能不支持某些字节值。
  • 字母应具有相同的大小写(下/上)

但你不应该比较表示。您应该比较字节:Arrays.equals(ar1, ar2)