Como criar um gerador de senhas aleatórias em Python

Nota: O seguinte artigo irá ajudá-lo com: Como criar um gerador de senhas aleatórias em Python

A segurança é uma das partes mais importantes de nossas vidas. A importância da segurança está aumentando dia a dia, pois a maioria das coisas está online. As senhas vêm à tona quando falamos sobre segurança.

Neste artigo, criaremos um gerador de senhas que nos ajudará a gerar senhas aleatórias e fortes rapidamente.

Por que precisamos de um gerador de senhas?

Porque não podemos pensar em padrões diferentes 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 senhas disponíveis.

Podemos criar os nossos com as personalizações que gostamos?

Sim, podemos definitivamente criar um. E aqui vamos mostrar como fazer isso.

Vamos criar um gerador de senhas.

Gerador de senhas 💻

O melhor de criar nosso próprio gerador de senhas é que podemos personalizá-lo como quisermos.

Primeiro, criaremos um gerador de senhas que pergunta o comprimento da senha e gera uma senha aleatória contendo dígitos, alfabetos e caracteres especiais.

Em seguida, 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 senhas usando Python.

os

  • Armazene todos os caracteres 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.
  • Embaralhe os caracteres usando o método random.shuffle.
  • Inicialize uma lista vazia para armazenar a senha.
  • Escreva um loop que itere tempos de comprimento.
    • Escolha um personagem aleatório de todos os personagens usando o método random.choice.
    • Anexe o caractere aleatório à senha.
  • Embaralhe a lista de senhas resultante para torná-la mais aleatória.
  • Converta a lista de senhas em string usando o método .
  • Imprima a senha.

Siga as etapas acima e tente escrever o código. Não se preocupe, mesmo que você não consiga escrever o código. Confira o código abaixo.

Código

import string
import random


## characters to generate  from
characters = list(string.ascii_letters + string.digits + "[email protected]#$%^&*()")

def generate_random_():
	## length of  from the 
	length = int(input("Enter  length: "))

	## shuffling the characters
	random.shuffle(characters)
	
	## picking random characters from the list
	 = []
	for i in range(length):
		.append(random.choice(characters))

	## shuffling the resultant 
	random.shuffle()

	## converting the list to string
	## printing the list
	print("".())



## invoking the function
generate_random_()

O código acima é autoexplicativo. Acabamos de seguir os os descritos 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. Uma saída de exemplo será a seguinte.

Enter  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.

Em seguida, tentamos garantir que o programa inclua 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 digitar 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 a quantidade de caracteres para cada tipo e gera a senha.

import string
import random


## characters to generate  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_():
	## length of  from the 
	length = int(input("Enter  length: "))

	## number of character types
	alphabets_count = int(input("Enter alphabets count in : "))
	digits_count = int(input("Enter digits count in : "))
	special_characters_count = int(input("Enter special characters count in : "))

	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  length")
		return


	## initializing the 
	 = []
	
	## picking random alphabets
	for i in range(alphabets_count):
		.append(random.choice(alphabets))


	## picking random digits
	for i in range(digits_count):
		.append(random.choice(digits))


	## picking random alphabets
	for i in range(special_characters_count):
		.append(random.choice(special_characters))


	## if the total characters count is less than the  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):
			.append(random.choice(characters))


	## shuffling the resultant 
	random.shuffle()

	## converting the list to string
	## printing the list
	print("".())



## invoking the function
generate_random_()

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. Assim, você não encontrará nenhuma dificuldade em compreendê-lo.

Agora, é hora de executar e verificar a saída. Observe a execução de teste a seguir.

Enter  length: 10
Enter alphabets count in : 3
Enter digits count in : 2
Enter special characters count in : 3
V2(&#XlQq1

Se você vir a senha gerada desta vez, ela tem 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 completo de senhas fortes. 😎

Conclusão

Vimos como criar um gerador de senhas do zero. Podemos adicionar mais recursos a ele? Sim, podemos adicionar quantos quisermos. Mas, certifique-se de que a senha resultante seja forte o suficiente.

Gere as senhas do código e use-as para sua próxima conta online.

Enquanto você faz isso, use o Geekflare Random Generator para criar senhas seguras.

Aprenda a escrever igual ou não igual ao código e como construir um jogo da velha em Python.

Boa Codificação! 👩‍💻