java - 从控制台窗口隐藏密码 Java Asterisk 密码或阻止显示输入的字符串

标签 java input console passwords

public class Login {

    protected static String user, pass, host;
    Object conn;


    public void Login() throws SQLException
    {



    try {
      Class.forName ("com.mysql.jdbc.Driver");
    } catch (ClassNotFoundException e) {
        System.out.println ("Could not load the driver"); 
      }




    Scanner sc = new Scanner(System.in);
    Console console = System.console();

    System.out.println("Please Enter Username");
    user = sc.next();
    System.out.println("Please Enter Password");
    pass = sc.nextLine();
    System.out.println("Please Enter Host/IP Address");
    host = sc.next();
    System.out.println("Attempting Log In");



  Connection conn = (Connection) DriverManager.getConnection
                  ("jdbc:mysql://"+host+":3306/chessdb", user, pass);

只是一点帮助,一直在网上寻找阻止密码显示在控制台窗口上的方法。有没有一种简单的方法,要么完全不显示输入的文本,要么用星号仅覆盖密码字段的输入?

最佳答案

使用readPassword()方法。

而不是像使用扫描仪那样

System.out.println("Please Enter Password");
    pass = sc.nextLine();

用途:

    System.out.println("Please Enter Password");
    char[] passString = Console.readPassword();
    String pass = new String(passString );

关于java - 从控制台窗口隐藏密码 Java Asterisk 密码或阻止显示输入的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27050323/

相关文章:

HTML5 输入 : min prevents steps any

ruby-on-rails - 使用Rails控制台时的换行符(终端)

java - 使用 Java,我可以将人类可读的颜色名称转换为整数数组吗?

java - 没有为 taglib 文件中的文档检测到语法约束(DTD 或 XML 模式)

javascript - 为什么我的更新计数器的代码不起作用?

input - 如何从 Xbox 360 Controller 获取输入?

java - 为基于 Java 文本的游戏制作控制台

c# - C#控制台蛇在长按时卡住

java - 似乎无法理解复杂的多态性

java - 从 org.eclipse.jface.text.Document 获取错误列表