Leer la contraseña de la entrada estándar
-
21-09-2019 - |
Pregunta
Escenario: Un programa CLI interactiva de Python, que se encuentra en necesidad de una contraseña. Eso significa también, no hay solución posible interfaz gráfica de usuario.
En bash que pude obtener una contraseña sin leer en volver a solicitar que 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:. Reemplazar los caracteres escritos con '*' antes de enviarlos de nuevo a la pantalla (también conocido como 'estilo navegador)
Solución
>>> import getpass
>>> pw = getpass.getpass()
Otros consejos
Sí, getpass
: "Preguntar al usuario una contraseña sin reflejar. "
Editar No había jugado con este módulo a mí mismo, sin embargo, así que esto es lo que acabo de cociné (no se sorprenda si encuentra un código similar en todo el lugar, sin embargo):
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, el uso de raw_input
en lugar de input
utilizando Python 2.x).