Dla każdego, kto to czyta: NIE czytaj w hasłach z włączonym echo i czarno na czarnym. Hasło jest nadal przesyłane, a jeśli terminal nie zna użytych dyrektyw terminalu, znaki będą widoczne w echu. Wyłącz echo. Zastosowanie termios, stty, read -swszystko, co robi.
Alexios
Dlatego napisałem, że to nie jest rozwiązanie;).
Grzegorz Wierzowiecki
W rzeczy samej! Czasami ludzie przeglądają pytania i dochodzą do błędnych wniosków. :)
Świetny. Nie ma tego napisane man read, nie zameldowałem się help read. Dobrze wiedzieć.
Grzegorz Wierzowiecki
3
@GrzegorzWierzowiecki: Oglądasz niewłaściwy podręcznik. musisz przeczytać instrukcję bash tj. man bashi tam możesz znaleźć opcję -sSilent mode. If input is coming from a terminal, characters are not echoed.
pradeepchhetri
5
Zawsze stty -echowyłączałem echo, a potem czytałem, a potem robiłem stty echo(czytaj więcej, oglądając człowieka stty- tj man stty.). Jest to bardziej przydatne z perspektywy programistów, ponieważ można wyłączyć echo, a następnie odczytać hasło z języka programowania, takiego jak Java, C (++), Python itp., Za pomocą standardowych „czytników” standardowego wejścia.
W bash użycie może wyglądać następująco:
echo -n "USERNAME: "; read uname
echo -n "PASSWORD: "; stty -echo; read passwd; stty echo; echo
program $uname $passwd
passwd=# get rid of passwd
Na przykład Python wyglądałby następująco:
from sys import stdout
from os import system as term
uname = raw_input("USERNAME: ")# read input from stdin until [Enter] in 2
stdout.write("PASSWORD: ")
term("stty -echo")# turn echo off
try:
passwd = raw_input()
except KeyboardInterrupt:# ctrl+c pressed
raise SystemExit("Password attempt interrupted")
except EOFError:# ctrl+d pressed
raise SystemExit("Password attempt interrupted")
finally:
term("stty echo")# turn echo on again
print "username:", uname
print "password:","*"* len(passwd)
Musiałem to robić wiele razy w Pythonie, więc wiem to całkiem dobrze z tej perspektywy. Jednak nie jest to trudne do przetłumaczenia na inne języki.
termios
,stty
,read -s
wszystko, co robi.Odpowiedzi:
Od
help read
:źródło
man read
, nie zameldowałem sięhelp read
. Dobrze wiedzieć.man bash
i tam możesz znaleźć opcję -sSilent mode. If input is coming from a terminal, characters are not echoed.
Zawsze
stty -echo
wyłączałem echo, a potem czytałem, a potem robiłemstty echo
(czytaj więcej, oglądając człowiekastty
- tjman stty
.). Jest to bardziej przydatne z perspektywy programistów, ponieważ można wyłączyć echo, a następnie odczytać hasło z języka programowania, takiego jak Java, C (++), Python itp., Za pomocą standardowych „czytników” standardowego wejścia.W bash użycie może wyglądać następująco:
Na przykład Python wyglądałby następująco:
Musiałem to robić wiele razy w Pythonie, więc wiem to całkiem dobrze z tej perspektywy. Jednak nie jest to trudne do przetłumaczenia na inne języki.
źródło
Twoje pytanie brzmi inaczej „w sposób podobny do narzędzi ???” więc nie wiem dokładnie, czy to zadziała dla Ciebie:
źródło