Für jeden, der dies liest: Lies KEINE Passwörter mit eingeschaltetem Echo und Schwarz-auf-Schwarz ein. Das Passwort wird weiterhin übertragen, und wenn das Terminal die von Ihnen verwendeten Terminalanweisungen nicht kennt, werden die Zeichen sichtbar wiedergegeben. Echo ausschalten. Verwenden Sie termios, stty, read -s, alles, was sie tut.
Alexios
Deshalb habe ich geschrieben, dass es keine Lösung ist;).
Grzegorz Wierzowiecki
Tatsächlich! Manchmal überfliegen die Leute Fragen und kommen zu fehlgeleiteten Schlussfolgerungen. :)
Groß. Es steht nicht in meinem man read, ich habe nicht eingecheckt help read. Gut zu wissen.
Grzegorz Wierzowiecki
3
@GrzegorzWierzowiecki: Sie sehen das falsche Handbuch. Sie müssen das Handbuch von Bash dh lesen man bashund dort finden Sie -s OptionSilent mode. If input is coming from a terminal, characters are not echoed.
Pradeepchhetri
5
Ich habe immer das stty -echoEcho ausgeschaltet, dann gelesen und danach getan stty echo(lesen Sie mehr, indem Sie man von stty- ie sehen man stty). Dies ist aus Sicht des Programmierers nützlicher, da Sie das Echo deaktivieren und dann ein Kennwort aus einer Programmiersprache wie Java, C (++), Python usw. mit ihren Standard-Standard-"Lesegeräten" lesen können.
In Bash könnte die Verwendung so aussehen:
echo -n "USERNAME: "; read uname
echo -n "PASSWORD: "; stty -echo; read passwd; stty echo; echo
program $uname $passwd
passwd=# get rid of passwd
Python würde zum Beispiel so aussehen:
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)
Ich musste das oft in Python machen, deshalb kenne ich es aus dieser Perspektive ziemlich gut. Dies ist jedoch nicht sehr schwer in andere Sprachen zu übersetzen.
termios
,stty
,read -s
, alles, was sie tut.Antworten:
Von
help read
:quelle
man read
, ich habe nicht eingecheckthelp read
. Gut zu wissen.man bash
und dort finden Sie -s OptionSilent mode. If input is coming from a terminal, characters are not echoed.
Ich habe immer das
stty -echo
Echo ausgeschaltet, dann gelesen und danach getanstty echo
(lesen Sie mehr, indem Sie man vonstty
- ie sehenman stty
). Dies ist aus Sicht des Programmierers nützlicher, da Sie das Echo deaktivieren und dann ein Kennwort aus einer Programmiersprache wie Java, C (++), Python usw. mit ihren Standard-Standard-"Lesegeräten" lesen können.In Bash könnte die Verwendung so aussehen:
Python würde zum Beispiel so aussehen:
Ich musste das oft in Python machen, deshalb kenne ich es aus dieser Perspektive ziemlich gut. Dies ist jedoch nicht sehr schwer in andere Sprachen zu übersetzen.
quelle
Ihre Frage lautet irgendwie anders "in einer Art und Weise wie Werkzeuge ???" Ich weiß also nicht genau, ob das für dich funktionieren wird:
quelle