Como criar um gerador de senha usando Python?
Publicados: 2021-08-20A segurança é uma das partes mais importantes de nossas vidas. A importância da segurança está aumentando dia a dia, à medida que a maioria das coisas fica online. As senhas vêm à luz quando falamos sobre segurança.
Neste artigo, criaremos um gerador de senha que nos ajuda a gerar senhas aleatórias e fortes rapidamente.
Por que precisamos de um gerador de senha?
Porque não podemos pensar em diferentes padrões de senhas instantaneamente.
Mas, não é o mesmo caso com computadores. Os computadores podem gerar senhas aleatórias e fortes com base em nossas personalizações em segundos. Existem muitos geradores de senha disponíveis.
Podemos criar o nosso próprio com as personalizações que gostamos?
Sim, podemos definitivamente criar um. E aqui vamos mostrar como fazer isso.
Vamos criar um gerador de senha.
Gerador de senhas
A melhor coisa sobre como criar nosso próprio gerador de senha é que podemos personalizá-lo como quisermos.
Primeiro, criaremos um gerador de senha que pergunta o comprimento da senha e gera uma senha aleatória contendo dígitos, alfabetos e caracteres especiais.
A seguir, vamos melhorá-lo perguntando o número de cada tipo de caractere, como o número de dígitos, alfabetos e caracteres especiais.
Então, sem mais delongas, vamos ver as etapas para criar um gerador de senha usando Python.
Degraus
- Armazene todos os personagens como uma lista. Podemos usar o módulo string do Python ou digitar todos eles.
- Peça ao usuário para inserir o comprimento da senha.
-
random.shuffleos caracteres usando o métodorandom.shuffle. - Inicialize uma lista vazia para armazenar a senha.
- Escreva um loop que itera tempos de
length.- Escolha um caractere aleatório de todos os caracteres usando o método
random.choice. - Acrescente o caractere aleatório à senha.
- Escolha um caractere aleatório de todos os caracteres usando o método
- Misture a lista de senhas resultante para torná-la mais aleatória.
- Converta a lista de senhas em string usando o método
join. - Imprima a senha.
Siga as etapas acima e tente escrever o código. Não se preocupe, mesmo se você não puder escrever o código. Confira o código abaixo.
Código
import string import random ## characters to generate password from characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## shuffling the characters random.shuffle(characters) ## picking random characters from the list password = [] for i in range(length): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()O código acima é autoexplicativo. Acabamos de seguir as etapas descritas para escrever o código. Portanto, você não encontrará nenhum problema em entender o código se ler as etapas.
Agora, execute o código e gere uma senha. Um exemplo de saída será o seguinte.
Enter password length: 10 d&amIzK%d)Observe a senha na saída acima. Existe algum dígito? Não. Porque não há garantia de que o programa incluirá dígitos.
A seguir, tentamos garantir que o programa incluirá dígitos e caracteres especiais, solicitando ao usuário que insira o número de dígitos, alfabetos e caracteres especiais que deseja.

Quando o usuário inserir o número de caracteres para cada tipo, o programa incluirá o respectivo número de tipos de caracteres na senha.
Vamos ver o código que aceita o número de caracteres para cada tipo e gera a senha.
import string import random ## characters to generate password from alphabets = list(string.ascii_letters) digits = list(string.digits) special_characters = list("[email protected]#$%^&*()") characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()") def generate_random_password(): ## length of password from the user length = int(input("Enter password length: ")) ## number of character types alphabets_count = int(input("Enter alphabets count in password: ")) digits_count = int(input("Enter digits count in password: ")) special_characters_count = int(input("Enter special characters count in password: ")) characters_count = alphabets_count + digits_count + special_characters_count ## check the total length with characters sum count ## print not valid if the sum is greater than length if characters_count > length: print("Characters total count is greater than the password length") return ## initializing the password password = [] ## picking random alphabets for i in range(alphabets_count): password.append(random.choice(alphabets)) ## picking random digits for i in range(digits_count): password.append(random.choice(digits)) ## picking random alphabets for i in range(special_characters_count): password.append(random.choice(special_characters)) ## if the total characters count is less than the password length ## add random characters to make it equal to the length if characters_count < length: random.shuffle(characters) for i in range(length - characters_count): password.append(random.choice(characters)) ## shuffling the resultant password random.shuffle(password) ## converting the list to string ## printing the list print("".join(password)) ## invoking the function generate_random_password()Então, qual é a diferença entre o código anterior e este código?
- Escrevemos loops separados para cada tipo de caractere para adicioná-los à senha.
- Existem duas verificações condicionais para validar a contagem total de caracteres com o comprimento da senha.
Nós adicionamos algum código extra. Mas, o padrão é semelhante ao código anterior. Portanto, você não encontrará dificuldade em entendê-lo.
Agora é hora de executar e verificar a saída. Observe a seguinte execução de teste.
Enter password length: 10 Enter alphabets count in password: 3 Enter digits count in password: 2 Enter special characters count in password: 3 V2(&#XlQq1Se você vir a senha gerada desta vez, ela possui o número mínimo de caracteres que o usuário deseja. E o programa incluiu mais 2 caracteres aleatórios para tornar o comprimento da senha igual à entrada do usuário.
Viva! temos um gerador de senha forte completo.
Conclusão
Vimos como criar um gerador de senha do zero. Podemos adicionar mais recursos a ele? Sim, podemos adicionar quantos quisermos. Porém, certifique-se de que a senha resultante seja forte o suficiente.
Gere as senhas a partir do código e use-as em sua próxima conta online.
A seguir, descubra como construir um jogo da velha em Python.
Happy Coding!
