To dig up a really old thread.....
This is a definite hack, but workds.
public class Eraser extends Thread {
PrintStream out;
boolean finish=false;
public Eraser (PrintStream out) {
this.out = out;
}
public void run () {
while ( !finish ) {
out.print ( "\010*" );
try {
sleep ( 10 );
} catch ( InterruptedException inte ) {
finish = true;
}
}
}
public static String readPassword () {
Eraser eraser = new Eraser ( System.out );
eraser.start ();
BufferedReader in = new BufferedReader(new
InputStreamReader(System.in));
String password = "";
try {
password = in.readLine();
} catch ( IOException ioe ) {
}
eraser.interrupt ();
try {
Thread.sleep ( 100 );
} catch ( InterruptedException inte ) {
}
return password;
}
}
> -----Original Message-----
> From: tclug-devel-admin at mn-linux.org
> [mailto:tclug-devel-admin at mn-linux.org] On Behalf Of Bob Tanner
> Sent: Wednesday, January 16, 2002 2:40 AM
> To: Mike Bresnahan
> Cc: tclug-devel at mn-linux.org
> Subject: Re: [TCLUG-DEVEL] Hidding passwords in Java?
>
>
> Quoting Bob Tanner (tanner at real-time.com):
> > Quoting Mike Bresnahan (mbresnah at visi.com):
> > > This was asked recently on the TCJUG. Noone offered a solution
> > > other than using JNI to call either getpass(3) or
> tcsetattr(2). Me
> > > thinks the Java designers decided that terminal I/O was
> not part of
> > > the least common demoninator.
> >
> > I've been messing around with the streams and experimenting with
> > replacing System.in, but I can't keep the keystrokes from
> appearing on
> > the console.
> >
> > getpass(3) or tcsetattr(2) Eeek! I don't think those will
> work under
> > Losedows.
> >
>
> Well, I got this working using JNI and tcsetattr(2). It was
> actually very simple.
>
> Read the JNI stuff, it should be just as easy for someone to
> write a windows DLL that does the same thing my share lib
> does. Of course, that person will not be me, since I don't
> have a Windows dev environment.
>
> I am actually very surprised how easy JNI makes hooking into
> native code.
>
> --
> Bob Tanner <tanner at real-time.com> | Phone : (952)943-8700
> http://www.mn-linux.org, Minnesota, Linux | Fax : (952)943-8500
> Key fingerprint = 6C E9 51 4F D5 3E 4C 66 62 A9 10 E5 35 85 39 D9
>
> _______________________________________________
> tclug-devel mailing list
> tclug-devel at mn-linux.org
> https://mailman.mn-linux.org/mailman/listinfo/tclug-devel