Java用户名和密码总是返回true

标签 java arrays passwords char

我正在开发一个项目,并一直在尝试隐含用户名/密码。下面你可以看到代码。每当我单击登录按钮时,用户名都会更改为 bobsyouruncle,这表明它在方法中找到了“true”值。问题是,无论输入如何,它总是如此。这变得更加令人困惑,因为如果我将下面的“返回 true”更改为“返回 false”,那么我仍然会得到 bobsyouruncle。有什么建议吗?

    loginButton.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent event) {
            Boolean authenticated = AuthenticateCredentials(usernameField.getText(),passwordField.getPassword());

            if(authenticated = true){
                usernameField.setText("Bobsyouruncle");
            } else {
                System.exit(0);
            }

        }
    });

下面是访问的方法。

private Boolean AuthenticateCredentials(String user, char[] pass) {
    //This is only a placeholder.
    String theCorrectAnswer = "42";
    String theCorrectUser = "FPrefect";
    char[] passcode = theCorrectAnswer.toCharArray();
    optionPanel.showInternalMessageDialog(securityPanel,"Eggs are not supposed to be green.");
    if (user.equals(theCorrectUser) && Arrays.equals(passcode,pass)) {
        return true;    
    } else {
        return false;
    }

}

如果有人想告诉我,我已经搞砸了创建安全的用户名和密码以节省我以后的麻烦,那也是花花公子。

最佳答案

您使用=进行赋值,但这里需要的比较运算符是==。但是,authenticated 已经是 boolean,所以只需使用:

if(authenticated){

关于Java用户名和密码总是返回true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28095083/

相关文章:

ios - NSArray 排序数组使用描述符 : New Copy or Retain?

c# - 在 C# 中, "symbol"究竟被归类为什么?

python - 在python中隐藏密码输入输入

java - 为什么变量在没有同步的情况下对其他线程可见?

python - 分割给定字节偏移量的 utf-8 编码字符串 (python 2.7)

python - NumPy:当类似数组的类中 __array_ufunc__=None 时,某些运算符不起作用

windows - 如何在 Perl 脚本中的 Windows 控制台上询问密码?

java - SimpleDateFormat.getTimeInstance 忽略 24 小时格式

java - 使用 QueryDSL 和 Spring 的 Repository 编写跨表查询

java - 为什么在子类重写时,我通过反射获取基类方法?