Строка к звездочке, маскирующий пароль - PullRequest
2 голосов
/ 07 октября 2011

Я создаю этот простой код для входа в банкомат.Вы вводите имя пользователя и пароль, и вы входите, это прекрасно работает.Поскольку я не подключаюсь к базе данных или внешнему текстовому файлу и у меня только 1 пользователь, это просто написано в коде Java.Но когда вы вводите пароль «p4ss», я хочу, чтобы он был замаскирован, поэтому вместо того, чтобы видеть его на экране во время набора текста, вы должны увидеть «* * * *» или «» просто пустым (как при вводе pass в 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.");
    }

Буду признателен за любую помощь, которую я смогу получить.

Ответы [ 4 ]

2 голосов
/ 07 октября 2011

Майкл, взгляните на описание на веб-сайте Sun: https://web.archive.org/web/20120214061606/http://java.sun.com/developer/technicalArticles/Security/pwordmask

Или, если вы используете Java 5 или новее, вы можете использовать это: Как замаскировать пароль вJava 5?

1 голос
/ 07 октября 2011

Я предполагаю, что это имитированный банкомат ...

Дев указал, что маскировка пароля на консоли поддерживается из коробки, поэтому вы можете использовать это.Однако для всего, кроме самого тривиального ввода-вывода, вам лучше использовать Swing или «подобную проклятиям» библиотеку:

0 голосов
/ 07 октября 2011

Если у вас JavaSE 6 или новее, вы можете использовать Console.readPassword ()

0 голосов
/ 07 октября 2011

Для этого существует специальный метод Console.readPassword(), представленный в Java 6. Однако вы, очевидно, не могли запустить подобный код на реальном банкомате!У Swing есть JPasswordField, который позволяет вам выполнять такую ​​маскировку в графическом интерфейсе, и можно представить окно банкомата на основе Swing.

...