Batch Passwortabfrage mit *******?
Guten Tag,
ich habe ein login system erstellt und wollte nun fragen ob es möglich ist das Passwort beim eingeben mit * zu verstecken
LG
3 Antworten
Jein
Standardmäßig gibt es keine Möglichkeit
Man muss schon richtig Tief in die Trickkiste greifen um dergleichen mit purem Batch hinzubekommen:
@echo off
rem Macro zum enlesen einzelner Zeichen von der Tastatur
set "getKey=for /f "tokens=2 delims=] skip=1" %%. in ('replace.exe ? . /u /w ^|find /n /v ""') do (set "getKey.Key=%%~.")"
<nul set /p "=Bitte Passwort eigeben:"
set "PasswortInput="
:loop
%getKey% &rem Macro aufrufen
if "%getKey.Key%"=="" goto :exitLoop &rem Bei Enter Loop velassen
set "PasswortInput=%PasswortInput%%getKey.Key%" &rem Zeichen dem String hinzufügen
<nul set /p "=*" &rem Stenchen auf den Bildschirm schreiben ohne neue Zeile!)
goto :loop
:exitLoop
echo: &rem den Zeilenvorschub "nachholen"
echo Du hast "%PasswortInput%" eingegeben!
pause
Natürlich kannst Du die Entgegennahme des Passworts auch auch dem Read-host -Cmdlet von Powerschell überlassen.. Nur schade, da ich das schöne verschlüsselte Passwort gleich wieder in Plaintext umwandeln muss, damit es in Batch benutzt werden kann.
for /f "delims=" %%a in ('powershell "Read-Host -AsSecureString|foreach{(New-Object PSCredential 'N/A', $_).GetNetworkCredential().Password}"') do (
set "PasswortInput=%%a"
)
echo Du hast "%PasswortInput%" eingegeben!
Kleiner Rat von mir, was immer was Du da zauberst Batch ist nicht wirklich geeignet um irgendwelche Passwörter sicher zu handhaben.
Steck nicht mehr zuviel Energie in Batch. Powershell kann wesentlich mehr als Batch und ist einfacher zu handhaben.
Kurz und auf den Punkt: Nein.
Früher hab ich ähnliche Fragen differenzierter beantwortet mit "nein, es sei denn, man behilft sich mit a, b, c und d-f, muss dann aber beachten, dass g, h, i ... Und am Ende ist es immer noch Humbug, weil j, k, l-m. Also lass es besser sein!"
Als Antwort kommt dann grundsätzlich: "Also geht es ja. Prima! Zeig mir wie!"
Daher fasse ich mich lieber kurz. 😉
Das klingt für mich ziemlich unsinnig. Eine Batch kann man jederzeit abbrechen.
sach doch nich immer nein...😅