# Maskierte Eingaben in der Konsole?



## Moch (15. Jul 2011)

Hallo,

Vorab: Ich bin mir der Sinnlosigkeit meines hier gewählten Ansatzes wohl bewusst, da man entsprechende Zeichenketten einfach aus dem Quellcode entnehmen kann. Ich spiele derzeit nur ein wenig mit Java rum, weil ich a) Spaß daran gefunden habe und b) einfach ein wenig den Umgang mit Java üben möchte.

Wonach ich aktuell suche, ist eine Möglichkeit, die UserEingaben in der Windows-Konsole zu maskieren. Jeder kennt vermutlich die schönen Sternchen, die die Passwortzeichen bei einem Login verdeckten. Einige kennen vielleicht auch die Möglichkeit der Linux-Konsole (zumindest unter Ubuntu 10.04), dass z.B. bei Eingabe des Sudo-Passworts GAR NICHTS angezeigt wird.

Ich weiß wohl, dass Java eine entsprechende Möglichkeit bereits "ab Werk" bietet. Nach dem, was ich jedoch gelesen habe, sei dies nicht für die Konsole geeignet - folglich auch nicht für die Windows-Konsole.
Daher meine Frage an Euch: Gibt es da eine Möglichkeit, das umzusetzen oder ist das nicht möglich? Darf auch ruhig ein wenig komplexer sein, wenn's einfach nicht geht.

Nochmal als Hinweis: Es geht hierbei wirklich nur um eine Spielerei, die keinen wirklichen Nutzen bringen soll.
Ich werde hierbei auch nicht auf Applets oder andere Oberflächen zurückgreifen, sondern stattdessen auf diese Eingabe verzichten 

Also: Möglich oder nicht? Wenn ja wie?

liebe Grüße
Der Moch


----------



## faetzminator (15. Jul 2011)

Hab auch mal damit rumgespielt und [c]System.console().readPassword()[/c] funktionierte sowohl in der cmd als auch in der Shell


----------



## Moch (15. Jul 2011)

Super, vielen Dank, funktioniert... zumindest nachdem ich mit meinem Eclipse aneinandergeraten bin, weil es meinte mir eine NullPointerException werfen zu müssen. Scheint wohl eine Art Bug zu sein oder entsprechendes wird nicht von Eclipse nicht unterstützt.
Die ausführbare Jar funktioniert in der Windowskonsole jedenfalls tadellos.

Also, sollte noch wer dieses Problem haben und auch noch zufällig auf diesen Thread stoßen:
Obige Anweisung wirft in diesem Zustand nur in Eclipse selbst eine Exception 

Liebe Grüße
Moch


----------



## faetzminator (15. Jul 2011)

Mach doch einen null-Check auf [c]System.console()[/c] und verwende dann einen Scanner o.ä. - mit einer Warnung, dass das Passwort plain dargestellt wird.


----------

