字符串到星号,掩码密码
我正在为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.");
}
希望得到任何帮助,我能得到。
迈克尔,看看在Sun的网站上描述: https://web.archive.org/web/20120214061606/http://java.sun.com/developer/technicalArticles/Security/pwordmask
或者,如果你正在使用Java 5或更新版本,您可以使用此: How to mask a password in Java 5?
有一个特殊的方法Console.readPassword()
因为这样做是在Java 6中引入的。不过,你显然不能在真正的ATM上运行这样的代码! Swing有JPasswordField
它可以让你在GUI中做这种掩蔽,并且可以想象一个基于Swing的ATM窗口。
第一部分是不正确的,您可以在Java6或更新版本的控制台上屏蔽密码。 – Dev
这很酷,我没有注意到。编辑。 –
我认为这是一个模拟ATM ...
开发指出,在控制台密码掩蔽支持开箱即用的,所以你可以使用它。但是任何东西,但最琐碎的IO的你会更好使用Swing或一个“诅咒般的”库:
我的答案中指出,在JavaSE 6或更新版本中开箱即用地支持密码屏蔽。 – Dev
@Dev:我从来不知道。感谢您指出。 –
这是什么键盘类?如果您正在为ATM编写代码,为什么您要使用System.out? –
*具有内置的安全性,当你输入p4ss时,我看到的全是**** – JRL
那么它只是一个登录页面,键盘类是我可以输入文本。该系统是这样,我可以看到屏幕上的输出。 – Michael