Todo site tem alguma forma de interface de segurança que requer autenticação do usuário. Esses formulários geralmente usam seu e-mail e senha para acessar o site. Usar uma senha segura ao fazer login é essencial para evitar que bandidos (hackers) tenham acesso à sua conta.
Este artigo ensinará como criar um gerador de senha aleatório usando Python, gerando uma combinação de letras, números e símbolos como caracteres misturados, dificultando a quebra ou adivinhação da senha.
Vamos construir um gerador de senha aleatório juntos.
Para criar um gerador de senha aleatório, usaremos esta abordagem:
Como você sabe, alguns aplicativos na internet sugerem senhas aleatórias quando você cria uma nova conta. Os caracteres aleatórios são para você decidir e podem ter até oito caracteres.
Crie um novo arquivo, main.py
, para escrever os scripts para o aplicativo.
# main.py letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n"))
Os caracteres do bloco de código acima compõem a combinação do gerador de senhas apresentado em uma lista.
Em seguida, certifique-se de que os usuários possam inserir uma figura, um número inteiro que representa o número de vezes que um caractere aparecerá quando a saída final for exibida e declarada com uma variável.
\n
: representa que o valor de entrada irá para a linha seguinte
Agora, vamos atualizar o restante do código. Copie e cole o seguinte:
# main.py # Password Generator Project import random # add this # letters, numbers, and symbols lists # users' input for the amount of characters # add these below password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list)
O bloco de código faz o seguinte:
random
embutido, o módulo usado para gerar números aleatóriospassword_list
random.choice()
para cada uma das variáveis declaradas do personagempassword_list
for criada usando o método .shuffle()
Copie e atualize o seguinte código:
# main.py # import # letters, numbers, and symbols lists # users' input for the amount of characters # randomize characters # add this password = "" for char in password_list: password += char # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")
O processo de conversão de uma lista em uma string é o seguinte:
password
for
char
em loop.join()
para alterar a iteração da lista da lista de senhas para uma stringf-strings
O resultado final do código:
# main.py import random letters = [ 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' ] numbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'] symbols = ['!', '#', '$', '%', '&', '(', ')', '*', '+'] print("Welcome to the PyPassword Generator!") nr_letters = int(input("How many letters would you like in your password?\n")) nr_symbols = int(input(f"How many symbols would you like?\n")) nr_numbers = int(input(f"How many numbers would you like?\n")) password_list = [] for char in range(1, nr_letters + 1): password_list.append(random.choice(letters)) for char in range(1, nr_symbols + 1): password_list.append(random.choice(numbers)) for char in range(1, nr_numbers + 1): password_list.append(random.choice(symbols)) random.shuffle(password_list) password = "" for char in password_list: password += char print("char", char) # convert list to string pwd = ''.join(password_list) print(f"Your random password to use is: {pwd}")
Neste artigo, você desenvolveu um aplicativo que gera senhas aleatórias que não são iguais a cada tentativa, tornando o caso de uso dinâmico para gerar o máximo de senhas possível.
Embora essa possa não ser a melhor abordagem para gerar senhas aleatórias, a essência do artigo é mostrar a possibilidade de usar o programa Python para criar uma senha. Ainda assim, a saída é inesperada e diferente a cada nova entrada, independentemente do tamanho da senha.