Search
Close this search box.
Conheça o módulo getpass do Python para prompts de senhas
getpass

Posts Relacionados:

O módulo getpass em Python fornece uma maneira segura e simples para lidar com prompts de senhas em programas de linha de comando.

Receba nossa newsletter

O módulo getpass

getpass Python

Em muitos programas e aplicativos, precisamos implementar senhas para autenticar nossos usuários. O módulo getpass em Python fornece uma maneira segura para lidar com prompts de senhas em programas de linha de comando. Ele foi projetado para lidar com prompts de senha ou outros dados confidenciais com segurança, não ecoando a entrada de volta para o terminal.

As funções principais do módulo getpass

O módulo getpass possui duas funções principais: getpass.getpass() e getpass.getuser().

A função getpass.getpass()

Essa função solicita ao usuário uma senha sem ecoar o que for digitado. Se um prompt for fornecido, ele será exibido para o usuário. Sua sintaxe é:

				
					
 getpass.getpass(prompt, stream=None) 
				
			

nessa sintaxe, o parâmetro prompt (opcional) é uma string exibida ao usuário para solicitar a senha. Stream é um parâmetro opcional (o padrão é None) que se refere a um objeto semelhante a um arquivo no qual o prompt é gravado. No Unix, o padrão é o terminal de controle (/dev/tty) ou sys.stderr se o terminal não estiver disponível. Esse parâmetro é ignorado no Windows (veja a documentação oficial para mais informações). Portanto, é importante notar que o comportamento do getpass pode variar entre diferentes sistemas operacionais. Venha um exemplo de código com a função getpass.getpass() abaixo:

				
					import getpass 
  
senha = getpass.getpass(prompt = 'Digite a sua senha') 
if senha == 'Admin': 
    print('Senha aceita!') 
else: 
    print('Você digitou a senha errada.') 

				
			

Nesse exemplo, primeiro importamos o módulo getpass e depois usamos a função getpass.getpass() para exibir um prompt solicitando a senha do usuário. Em seguida, fazemos uma validação simples da senha para verificar se ela corresponde ao valor que determinamos (Admin). Em caso afirmativo, autenticamos nosso usuário.

A função getpass.getuser()

A função getpass.getuser() exibe o nome de login do usuário. Ela verifica as variáveis de ambiente LOGNAME, USER, LNAME e USERNAME em ordem, e retorna o primeiro valor não vazio. Se nenhum for encontrado, ela poderá buscar o nome de login do banco de dados de senhas em sistemas que suportam isso. Portanto, essa função é usada para identificar o usuário atual em códigos ou aplicativos que exigem operações específicas de usuário. Veja um exemplo de como usá-la abaixo:

				
					import getpass

username = getpass.getuser()
print("Nome:", username)

				
			

Nesse trecho, usamos a função getpass.getuser() para retornar o nome de um usuário autenticado. Se você executar esse código e estiver logado no seu computador, é provável que ela retornará o seu username.

Um exemplo simples de código Python para autenticação

Abaixo, mostramos um exemplo básico de um código Python para autenticação usando o módulo getpass. Ele solicita um username e senha e verifica um conjunto de credenciais codificados em um dicionário. Seu propósito é apenas demonstrativo, pois, para uso em produção, é fundamental usar um método mais seguro de armazenamento e verificação de credenciais com criptografia ou hash. Veja o exemplo abaixo:

				
					
import getpass

def autenticar(username, senha):
    ''' Verifica credenciais fornecidas para autenticação'''

    usuarios_validos = {'user1': 'senha1', 'user2': 'senha2'} # dicionário simples com credenciais
    return username in usuarios_validos and usuarios_validos[username] == senha # retorna True se as credenciais forem autenticadas

def main():
    ''' solicita ao usuário o seu username e a senha e chama a função de autenticação para verificar as credenciais'''
    
    username = input("Username: ")
    password = getpass.getpass("Digite a sua senha: ")

    if autenticar(username, password):
        print("Autenticação bem-sucedida!")
    else:
        print("A autenticação falhou.")

if __name__ == "__main__":
    main()
				
			

Nesse código, primeiro importamos o módulo getpass. Em seguida, definimos uma função (autenticar) de autenticação. Ela verifica se o nome de usuário e a senha fornecidos correspondem a um dicionário codificado de usuários válidos. Em um aplicativo real, essa etapa seria substituída por uma pesquisa de banco de dados ou outro mecanismo de autenticação seguro. Depois, definimos uma função principal (main) que solicita ao usuário o seu username e a senha usando input (para exibir a mensagem no terminal) e getpass, respectivamente. Por fim, ainda na função principal, chamamos a função de autenticação para verificar as credenciais e imprimimos uma mensagem de êxito ou falha com base no resultado da autenticação. A função principal é chamada quando o código é executado diretamente.

Dicas finais

É importante notar: embora o getpass seja geralmente seguro, ele não fornece proteção criptográfica nem métodos para lidar com senhas fortes. Portanto, para sistemas em produção, use hash de senha forte, salting e métodos de armazenamento seguro. Ferramentas como bcrypt e hashlib para hash de senha podem ser excelentes nessas tarefas. Além disso, também é importante implementar formas para lidar com erros para casos como entrada inválida, falhas de autenticação e outros problemas potenciais. Os comandos try/except podem ajudar bastante para essa tarefa.

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 199

IA generativa img 199

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial