String to asterisk, masking password

12,384

Solution 1

Michael, have a look at the description on Sun's website: https://web.archive.org/web/20120214061606/http://java.sun.com/developer/technicalArticles/Security/pwordmask

Or, if you're using Java 5 or newer, you can use this: How to mask a password in Java 5?

Solution 2

I assume this is a simulated ATM...

Dev has pointed out that password masking on the console is supported out of the box, so you can use that. However for anything but the most trivial of IO you'd be better off using Swing or a "curses-like" library:

Share:
12,384
Michael
Author by

Michael

Updated on June 04, 2022

Comments

  • Michael
    Michael about 2 years

    I'm creating this simple login code for an ATM machine. You enter username and password and you logs in, that works just great. Since I'm not connecting to a database or an external text file and I've just got 1 user, it's just written plainly in the Java code. But when you enter the password "p4ss" I want it to be masked, so instead of seing it on the screen while typing you should see "* * * *" or " " just blank (Like when you enter pass on Linux).

    Currently my code looks like this:

        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.");
        }
    

    Would appreciate any help I could get.

  • Dev
    Dev over 12 years
    The first part is incorrect, you can mask a password on the console in Java6 or newer.
  • Dev
    Dev over 12 years
    Password masking is supported out of the box in JavaSE 6 or newer as indicated in my answer.