Módulo getpass Python
Usando Python Obter passagem módulo, é possível aceitar senhas em programas Python e manter as senhas seguras. Veremos exemplos de como manter as senhas seguras e também como podemos transmitir as senhas do terminal para arquivos de texto. Vamos começar com alguns exemplos.
Exemplo básico de getpass em Python
Neste exemplo, começaremos com um exemplo muito básico de como podemos fazer um usuário inserir uma senha no terminal e certificar-se de que a senha não retorne ao prompt de comando. Aqui está o mesmo programa:
import getpasstentar:
senha = getpass.Obter passagem()
exceto exceção como ex:
imprimir ('Ocorreu um erro:', ex)
senão:
imprimir ('senha digitada:', senha)
Aqui está o que recebemos de volta com este comando:
Obter senha secreta
A senha da string é o prompt padrão que é apresentado pelo script python. No próximo exemplo iremos personalizar isso para algo que gostaríamos de usar em nossos programas.
Python getpass com prompt personalizado
Neste exemplo, iremos personalizar o prompt que é mostrado ao usuário quando o Python pede uma frase secreta:
import getpasspwd = getpass.getpass (prompt = 'Qual é a melhor ilha do Ubuntu para visitar?')
if pwd == 'LinuxHint':
print ('Claro!')
senão:
print ('Onde fica isso?')
Vamos ver a saída deste comando:
Prompt personalizado para obter a senha
Este comandoéútil quando você deseja pedir algumas senhas além das strings de senhas.
Senha do stream para outro stream
O Obter passagem módulo nos permite transmitir a senha que um usuário insere para alguns outros fluxos como um arquivo, registros ou qualquer coisa que possa ser representada como um fluxo,. Precisamos apenas passar o fluxo para a própria função:
import getpassimport sys
pwd = getpass.getpass (stream = sys.stderr)
imprimir ('Senha inserida:', pwd)
Aqui está o que recebemos de volta com este comando:
Senha de streaming para outros streams
Obtendo senhas sem Terminal
O Python Obter passagem módulo precisa de tty, que pode ser controlado por um termios. Isso é aplicável quando estamos trabalhando com alguns sistemas baseados em Unix. Com isso, o eco pode ser desativado. Quando executamos o seguinte exemplo em uma máquina não Unix:
echo "não escuro" | python3 getpass_defaults.pyAqui está o que recebemos de volta com este comando:
comando termios
Conforme executamos o script em uma máquina não Unix, a string de saída foi o que inserimos. Caso contrário, teríamos simplesmente visto não escuro String como saída no terminal.
Leia mais sobre terminais de teletipo aqui.
Conclusão
Nesta lição, vimos como podemos usar o Python Obter passagem módulo para gerenciar frases secretas de forma eficiente em nossos programas Python.