Para quem estiver lendo isso: NÃO leia senhas com eco ativado e preto no preto. A senha ainda é transmitida e, se o terminal não souber as diretivas usadas, os caracteres ecoarão visivelmente. Desative o eco. Use termios, stty, read -s, tudo o que faz.
28412 Alexios
É por isso que escrevi, que não é uma solução;).
Grzegorz Wierzowiecki 26/03
De fato! Às vezes, as pessoas examinam as perguntas e chegam a conclusões equivocadas. :)
Ótimo. Não está escrito no meu man read, ainda não fiz o check-in help read. Bom saber.
Grzegorz Wierzowiecki 26/03
3
@GrzegorzWierzowiecki: Você está vendo o manual errado. você tem que ler o manual do bash ou seja, man bashe lá você pode encontrar opção -sSilent mode. If input is coming from a terminal, characters are not echoed.
pradeepchhetri
5
Eu sempre stty -echodesabilitava o eco, depois lia e depois o fazia stty echo(leia mais vendo man of stty- ie man stty). Isso é mais útil do ponto de vista dos programadores, pois você pode desativar o eco e ler uma senha de uma linguagem de programação como Java, C (++), Python etc. com seus "leitores" padrão do stdin.
No bash, o uso pode ser assim:
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 exemplo, teria a seguinte aparência:
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)
Eu tive que fazer isso muitas vezes em Python, então eu sei muito bem dessa perspectiva. Isso não é muito difícil de traduzir para outros idiomas.
termios
,stty
,read -s
, tudo o que faz.Respostas:
De
help read
:fonte
man read
, ainda não fiz o check-inhelp read
. Bom saber.man bash
e lá você pode encontrar opção -sSilent mode. If input is coming from a terminal, characters are not echoed.
Eu sempre
stty -echo
desabilitava o eco, depois lia e depois o faziastty echo
(leia mais vendo man ofstty
- ieman stty
). Isso é mais útil do ponto de vista dos programadores, pois você pode desativar o eco e ler uma senha de uma linguagem de programação como Java, C (++), Python etc. com seus "leitores" padrão do stdin.No bash, o uso pode ser assim:
Python, por exemplo, teria a seguinte aparência:
Eu tive que fazer isso muitas vezes em Python, então eu sei muito bem dessa perspectiva. Isso não é muito difícil de traduzir para outros idiomas.
fonte
Sua pergunta é um pouco diferente "de certa forma como ferramentas ???" então não sei exatamente se isso funcionará para você:
fonte