paint-brush
Como criar um gerador de senha aleatório usando Pythonpor@terieyenike
28,960 leituras
28,960 leituras

Como criar um gerador de senha aleatório usando Python

por Teri Eyenike4m2022/09/03
Read on Terminal Reader
Read this story w/o Javascript

Muito longo; Para ler

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. Usaremos esta abordagem: Escreva todos os tipos de caracteres de senhas aceitáveis, como letras, números e símbolos. Dê aos usuários a capacidade de inserir o número de letras, símbolos e números para a senha gerada. Randomize a ordem dos caracteres para dificultar a adivinhação da senha.
featured image - Como criar um gerador de senha aleatório usando Python
Teri Eyenike HackerNoon profile picture


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.


Começando

Para criar um gerador de senha aleatório, usaremos esta abordagem:

  • Escreva todos os tipos de caracteres de senhas aceitáveis, como letras, números e símbolos
  • Dê aos usuários a capacidade de inserir o número de letras, símbolos e números para a senha gerada
  • Randomize a ordem dos caracteres para dificultar a adivinhação


Criando o gerador de senha aleatória

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:

  • Importe o random embutido, o módulo usado para gerar números aleatórios
  • Crie uma lista vazia [] com a variável password_list
  • Percorra o número na função de intervalo para criar uma sequência de números a partir do índice inicial e termine com o último índice mais 1
  • Em seguida, anexe a lista vazia para obter um elemento selecionado aleatoriamente usando o método random.choice() para cada uma das variáveis declaradas do personagem
  • Embaralhe a senha_lista recém-criada, alterando a posição dos elementos toda vez que uma nova password_list for criada usando o método .shuffle()


Converter a lista de senhas em uma string

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:

  • Crie uma variável de string vazia, password
  • Percorra a lista de senhas usando a palavra-chave for
  • Concatene as strings de senha com a variável char em loop
  • Use o método .join() para alterar a iteração da lista da lista de senhas para uma string
  • Por fim, exiba o resultado da senha usando as f-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}")


Conclusão

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.




Saber mais