java - 我的登录系统无法正确比较

标签 java

<分区>

Possible Duplicate:
Java String.equals versus ==

我正在尝试用 Java 制作一个简单的用户/密码系统。我的代码是:

Scanner sc  =  new Scanner (System.in); 
System.out.println("Enter Username :");
String username = sc.nextLine(); 
System.out.println("Enter Password :");
String password = sc.nextLine(); 
if (username == "a" && password == "b"){
System.out.print("ok");
}

或者

if (username == 'a' && password == 'b') 

我想用用户 a 进行简单登录并传递 b 但它不起作用。

最佳答案

要屏蔽密码,请选择 java.io.Console.readPassword()扫描仪类:

String username = null;
String password = null;
Console console = System.console();

System.out.print( "Username: " );
username = console.readLine();

System.out.print( "Password: " );
password = new String( console.readPassword());

System.out.println( "Username = " + username );
System.out.println( "Password = " + password );
if (username.equals( "a" ) && password.equals( "b" )) {
   System.out.print( "ok" );
}

另一个加强安全性的建议:密码变量应该是要被垃圾化的语言环境。

console.readPassword()返回的是一个char数组,可以不分配String就一个个char比较,虽然写的代码多了也更安全(因为我提供的示例代码使用的是String)。

关于java - 我的登录系统无法正确比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288331/

相关文章:

java - 如何以编程方式在执行程序节点中查找 Spark 版本?

java - 将 javascript 添加到 Tapestry 应用程序的方法是什么?

java - 多个线程在java中使用同一个对象是否复制它?

Java - war 游戏 - 从数组中获取对象

java - 有什么工具可以帮助用户设计要由我的应用程序使用的状态机?

java - 接受对某个方法的所有 HTTP 请求

java - 如何随机选择数组元素来更改按钮文本?

java - 使用 java-configuration 配置 MappingJackson2HttpMessageConverter

java - 当两个客户端向服务器发送对象时,ObjectOutputStream writeObject 挂起

java - Java ORM for MongoDB 的开销是多少