rubberman
Goto Top

How to display password in asterisks - Passworteingabe in Batch

Hallo Community,

in unregelmäßigen Abständen kommt hier die Frage auf, wie man Batcheingaben hinter Sternchen verbergen kann. Die Standardantworten:
  1. Passworteingaben in Batch sind sinnlos, da die Auswertung dann doch wieder in Plaintext erfolgen muss.
  2. Mit Batch-Bordmitteln ist das nicht machbar.

Die erste Aussage kann man nicht so leicht entkräften. Sobald mit IF & Co. gearbeitet wird und die Eingabe nicht direkt an ein anderes Programm übergeben wird, ist das tatsächlich so.
Die zweite Antwort scheint aber nun widerlegt. Man kann die Ausgabe von XCOPY /W soweit verbiegen, dass dies möglich ist.

Funktionsweise:
XCOPY /W wartet auf Benutzereingabe eines einzelnen Tastendrucks. Diese kann über eine FOR /F Schleife abgefangen werden, das letzte Zeichen der ersten Ausgabezeile ist dann das eingegebene Zeichen. Bei Enter ist dieses Zeichen ein einzelnes CarriageReturn, das vom Kommandozeileninterpreter bei nächster Gelegenheit eliminiert wird. Auch das lässt sich abfragen. Natürlich muss man einen entsprechenden Algorithmus bauen, um daraus eine versteckte Passworteingabe zu machen, die auch noch mit Sonderzeichen funktioniert und das Löschen einzelner Zeichen mittels Backspace-Taste unterstützt. In oben verlinktem Beitrag habe ich das in Form einer Subroutine mal vorgeturnt ... Die Idee selbst stammt allerdings nicht von mir.

Grüße
rubberman

http://www.dostips.com/forum/viewtopic.php?p=26796#p26796

Content-Key: 208459

Url: https://administrator.de/contentid/208459

Printed on: April 25, 2024 at 09:04 o'clock