2011-10-07 117 views
2

我正在为ATM机创建这个简单的登录代码。 您输入用户名和密码,然后登录,这非常棒。由于我没有连接到数据库或外部文本文件,并且我刚刚有1个用户,所以它只是简单地写在Java代码中。但是当你输入密码“p4ss”时,我希望它被屏蔽,所以在输入时你应该看到“* * * *”或“”只是空白(就像你在Linux上输入密码时),而不是屏幕上显示的密码。字符串到星号,掩码密码

目前我的代码看起来是这样的:

String user; 
    String pass;    
    System.out.print("User: "); 
    user = Keyboard.readString(); 
    System.out.print("Pass: "); 
    pass = Keyboard.readString(); 

    if ((user.equals("Admin")) && (pass.equals("p4ss")))    
    {  
     menu();  
    }  
    else 
    {  
     out.println("Wrong username or password."); 
    } 

希望得到任何帮助,我能得到。

+2

这是什么键盘类?如果您正在为ATM编写代码,为什么您要使用System.out? –

+1

Stackoverflow具有内置的安全性,当你输入p4ss时,我看到的全是**** – JRL

+0

那么它只是一个登录页面,键盘类是我可以输入文本。该系统是这样,我可以看到屏幕上的输出。 – Michael

回答

0

有一个特殊的方法Console.readPassword()因为这样做是在Java 6中引入的。不过,你显然不能在真正的ATM上运行这样的代码! Swing有JPasswordField它可以让你在GUI中做这种掩蔽,并且可以想象一个基于Swing的ATM窗口。

+0

第一部分是不正确的,您可以在Java6或更新版本的控制台上屏蔽密码。 – Dev

+0

这很酷,我没有注意到。编辑。 –

1

我认为这是一个模拟ATM ...

开发指出,在控制台密码掩蔽支持开箱即用的,所以你可以使用它。但是任何东西,但最琐碎的IO的你会更好使用Swing或一个“诅咒般的”库:

+0

我的答案中指出,在JavaSE 6或更新版本中开箱即用地支持密码屏蔽。 – Dev

+0

@Dev:我从来不知道。感谢您指出。 –