同じ md5 ハッシュ パスワードが 2 つあり、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;
    }