I need help urgently.

A

Abs

Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that. I cant use
applets, awt or any other thing beyond our ICSE Std X syllabus. Threads
would be OK i guess but pls try avoiding it. Plz help
 
A

Andrew Thompson

Abs wrote:

Sub: I need help urgently.

Hire a consultant.
Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that.

Use a JPasswordField.
...I cant use
applets, awt or any other thing beyond our ICSE Std X syllabus.

The 'standard way' to pass an exam is to study for it,
rather than come to usenet and ask for 'codes'.
...Threads
would be OK i guess but pls try avoiding it.

Sure thing.

Andrew T.
 
S

Simon Brooke

Abs said:
Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that. I cant use
applets, awt or any other thing beyond our ICSE Std X syllabus. Threads
would be OK i guess but pls try avoiding it. Plz help

How the **** are we supposed to know what's in your syllabus? And you'd get
better help if you put something useful in the subject line.

If you're writing a console app, read a character from the input stream and
print an asterisk to the output stream; repeat until you get an end of
line character. Something like (untested):

public String getPassword( InputStream in, OutputStream out, String prompt)
{
StringBuffer passBuff = new StringBuffer();
boolean done = false;

out.print( prompt);

while ( ! done)
{
int c = in.read();

switch ( c)
{
case -1: /* EOF */
case '\n':
case '\r':
/* and any other characters you see as terminating */
out.println();
done = true;
break;
default:
passBuff.append( ( char)c);
out.print( '*');
break;
}
}

return passBuff.toString();
}

The while loop here may lose you marks for style; you should probably
recode it as a for loop. I used while primarily to make it clearer.
 
O

Oliver Wong

Simon Brooke said:
Abs said:
Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that.
[...]

If you're writing a console app, read a character from the input stream
and
print an asterisk to the output stream; repeat until you get an end of
line character.

I think to be able to usefully fulfill the requirements in a console
app, you'd need someway of disabling the echoing of input. AFAIK, Java
doesn't provide any mechanism for doing this. So for a console app, my
recommendation would be "Don't use Java" for this particular problem.

- Oliver
 
M

Mark Jeffcoat

Oliver Wong said:
Simon Brooke said:
Abs said:
Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that.
[...]

If you're writing a console app, read a character from the input stream
and
print an asterisk to the output stream; repeat until you get an end of
line character.

I think to be able to usefully fulfill the requirements in a console
app, you'd need someway of disabling the echoing of input. AFAIK, Java
doesn't provide any mechanism for doing this. So for a console app, my
recommendation would be "Don't use Java" for this particular problem.

It looks like Java 1.6 supports this, in java.io.Console.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4050435

has related discussion, and some pointers to third-party packages
implementing various JNI attacks on the problem.
 
G

Gordon Beaton

Guys, i need a way so that i can mask the password on my program. I
want the password to appear as **** or something like that. I cant use
applets, awt or any other thing beyond our ICSE Std X syllabus. Threads
would be OK i guess but pls try avoiding it. Plz help

In a text console on any unix-like platform (you didn't specify
yours), you can do this to prevent the input from being displayed
while the password is entered:

http://groups.google.com/group/comp.lang.java.programmer/msg/a132c7feda18187a

If you want to display asterisks, you need to set "-icanon min 1" to
get character-at-a-time input, and do System.out.print("*") for each
character as it's typed.

/gordon
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,756
Messages
2,569,535
Members
45,008
Latest member
obedient dusk

Latest Threads

Top