String to asterisk, masking password
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:
Michael
Updated on June 04, 2022Comments
-
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 over 12 yearsThe first part is incorrect, you can mask a password on the console in Java6 or newer.
-
Dev over 12 yearsPassword masking is supported out of the box in JavaSE 6 or newer as indicated in my answer.