Java 字符串到星号,屏蔽密码

Java 字符串到星号,屏蔽密码,java,string,password-protection,masking,Java,String,Password Protection,Masking,我正在为ATM机创建这个简单的登录代码。 您输入用户名和密码,然后登录,效果非常好。因为我没有连接到数据库或外部文本文件,而且我只有一个用户,所以它只是简单地用Java代码编写的。但是,当您输入密码“p4S”时,我希望它被屏蔽,因此在键入时,您应该看到“***”或“空白”(就像在Linux上输入pass一样) 当前我的代码如下所示: String user; String pass; System.out.print("User: ");

我正在为ATM机创建这个简单的登录代码。 您输入用户名和密码,然后登录,效果非常好。因为我没有连接到数据库或外部文本文件,而且我只有一个用户,所以它只是简单地用Java代码编写的。但是,当您输入密码“p4S”时,我希望它被屏蔽,因此在键入时,您应该看到“***”或“空白”(就像在Linux上输入pass一样)

当前我的代码如下所示:

    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网站上的描述:

或者,如果您使用的是Java 5或更高版本,您可以使用:

在Java 6中引入了一种特殊的方法
Console.readPassword()
。不过,你显然不能在真正的ATM机上运行这样的代码!Swing具有
JPasswordField
,它允许您在GUI中执行这种屏蔽,您可以想象一个基于Swing的ATM窗口。

我假设这是一个模拟ATM

Dev指出,控制台上的密码屏蔽是现成支持的,因此您可以使用它。然而,除了最琐碎的IO之外,最好使用Swing或“类似诅咒”的库:


如果您有JavaSE 6或更新版本,您可以使用这里的键盘类是什么?如果你在为ATM机编写代码,你到底为什么要使用System.out?Stackoverflow有内置的安全性,当你键入p4ss时,我看到的是****这只是一个登录页面,键盘类是这样我就可以输入文本了。系统已关闭,因此我可以在屏幕上看到输出。第一部分的可能副本不正确,您可以在控制台上用Java6或更新版本屏蔽密码。如我的回答所示,JavaSE 6或更新版本支持开箱即用的密码屏蔽。