Para cualquiera que lea esto: NO lea contraseñas con eco activado y negro sobre negro. La contraseña aún se transmite, y si el terminal no conoce las directivas del terminal que ha utilizado, los caracteres se harán eco visiblemente. Desactiva el eco. Uso termios, stty, read -s, cualquier cosa que lo hace.
Alexios
Es por eso que escribí, que no es una solución;).
Grzegorz Wierzowiecki
¡En efecto! A veces las personas leen preguntas y llegan a conclusiones equivocadas. :)
Excelente. No está escrito en mi man read, no me he registrado help read. Bueno saber.
Grzegorz Wierzowiecki
3
@GrzegorzWierzowiecki: Estás viendo el manual incorrecto. tienes que leer el manual de bash, es decir, man bashy allí puedes encontrar la opción -sSilent mode. If input is coming from a terminal, characters are not echoed.
pradeepchhetri
5
Siempre solía stty -echodesactivar el eco, luego leer y luego hacer stty echo(leer más viendo man of stty- ie man stty). Esto es más útil desde la perspectiva de los programadores, ya que puede desactivar el eco y luego leer una contraseña de un lenguaje de programación como Java, C (++), Python, etc. con sus "lectores" estándar.
En bash, el uso podría verse así:
echo -n "USERNAME: "; read uname
echo -n "PASSWORD: "; stty -echo; read passwd; stty echo; echo
program $uname $passwd
passwd=# get rid of passwd
Python, por ejemplo, se vería así:
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)
Tuve que hacer esto muchas veces en Python, así que lo sé bastante bien desde esa perspectiva. Sin embargo, esto no es muy difícil de traducir a otros idiomas.
termios
,stty
,read -s
, cualquier cosa que lo hace.Respuestas:
De
help read
:fuente
man read
, no me he registradohelp read
. Bueno saber.man bash
y allí puedes encontrar la opción -sSilent mode. If input is coming from a terminal, characters are not echoed.
Siempre solía
stty -echo
desactivar el eco, luego leer y luego hacerstty echo
(leer más viendo man ofstty
- ieman stty
). Esto es más útil desde la perspectiva de los programadores, ya que puede desactivar el eco y luego leer una contraseña de un lenguaje de programación como Java, C (++), Python, etc. con sus "lectores" estándar.En bash, el uso podría verse así:
Python, por ejemplo, se vería así:
Tuve que hacer esto muchas veces en Python, así que lo sé bastante bien desde esa perspectiva. Sin embargo, esto no es muy difícil de traducir a otros idiomas.
fuente
Su pregunta se lee de forma diferente "de una manera como las herramientas ???" así que no sé exactamente si esto funcionará para ti:
fuente