con - encriptar codigo python
Leer la contraseƱa de stdin (2)
Sí, getpass
: " getpass
al usuario una contraseña sin eco".
Editar: Todavía no había jugado con este módulo, así que esto es lo que acabo de preparar (sin embargo, no me sorprendería que encuentres código similar por todas partes):
import getpass
def login():
user = input("Username [%s]: " % getpass.getuser())
if not user:
user = getpass.getuser()
pprompt = lambda: (getpass.getpass(), getpass.getpass(''Retype password: ''))
p1, p2 = pprompt()
while p1 != p2:
print(''Passwords do not match. Try again'')
p1, p2 = pprompt()
return user, p1
(Esto es Python 3.x; use raw_input
lugar de input
cuando usa Python 2.x.)
Escenario: un programa CLI interactivo de Python, que necesita una contraseña. Eso significa también que no hay una solución GUI posible.
En bash pude obtener una contraseña de lectura sin volver a solicitarlo en la pantalla a través de
read -s
¿Hay algo similar para Python? Es decir,
password = raw_input(''Password: '', dont_print_statement_back_to_screen)
Alternativa: Reemplace los caracteres escritos con ''*'' antes de devolverlos a la pantalla (también conocido como ''navegador'').
>>> import getpass
>>> pw = getpass.getpass()