比较两个消化的md5字符串返回false

mge*_*ner 2 java jsp servlets

我有两个md5哈希密码是相同的,应该使用MessageDigest.isEqual方法返回true.但是比较返回false.

使用Array.toString打印字节数组时,它们是相同的.对于Arrays.euqals和MessageDigest.isEqual,它仍然不起作用.

public boolean verifyUserCredentials(String username, MessageDigest password) {

        ListIterator<User> iterator = userList.listIterator();
        while (iterator.hasNext()) {
            User user = iterator.next();
            byte md1[] = user.getPassword().digest();
            byte md2[] = password.digest();
            if (user.getUsername() == username && MessageDigest.isEqual(md1, md2)) {
                return true;
            } 
        }
        return false;
    }
Run Code Online (Sandbox Code Playgroud)

rge*_*man 5

您已经使用过==,但是对于像String这样的对象来比较对象引用以查看它们是否引用了同一个对象.

要比较String值,请String#equals改用.