28/01/2024
02
[Gerador de senhas em Python]
Pela necessidade de criar senhas de forma aleatória e sem fazer muito esforço utilizando a cabeça para criar senhas e com risco de haver uma repetição de uma senha já existente, eu decidi criar um gerador de senhas em usando Python.
Como funciona: o programa pede o número de senhas que o usuário pretende gerar, depois o programa pede o tamanho mínimo e tamanho máximo, para que haja uma variação aleatória no tamanho das senhas, mas se os tamanhos máximo e mínimo forem iguais as senhas terão o mesmo tamanho, isto é, serão iguais aos tamanhos máximos e mínimos. De seguida o usuário deverá informar se pretende que nas senhas contenham símbolos (@ #$&_*...) E então o programa gera as senhas.
Código fonte:
=================================================================================================
: 01/01/2024
: Este programa é um gerador de senhas que pode gerar quantas senhas o usuário prentender, não só o usuário pode especificar o tamanho que pode variar entre tamanho minímo e tamanho maxímo, entretanto se o tamanho máximo for igual ao tamanho minimo não haverá variação. O usuário pode também dizer se quer que a senha contenha simbolos ou não.
: Conde Pedro Manuel
#==================================================================================================
from random import randint
from time import sleep
def gerar_senhas(quantidade,tamanho_min,tamanho_max,simb = False): que vai gerar as senhas
senhas = []
elementos = []
letrasMinúsculas = ['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']
as letras minúsculos em maiúsculas
letraMaiúsculas = []
for l in letrasMinúsculas:
letraMaiúsculas.append(l.upper())
números = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
elementos.append(letrasMinúsculas)
elementos.append(letraMaiúsculas)
elementos.append(números)
se é para colocar simbolos ou não
simbolos = ['!', '@', ' #', '$', '%', '&', '?', '_']
if simb == True:
elementos.append(simbolos)
da criação da senhas
while quantidade > 0:
senha = ''
digitos = []
tamanho = 0
if tamanho_max == tamanho_min:
tamanho = tamanho_max
else:
tamanho = randint(tamanho_min, tamanho_max)
for c in range(0, tamanho):
n = randint(0,(len(elementos) - 1))
digitos.append(n)
for d in digitos:
senha += f'{elementos[d][(randint(0,len(elementos[d]) - 1))]}'
se a senha esta entre as senhas já geradas
if senha in senhas:
quantidade += 1
senha = ''
else:
senhas.append(senha)
quantidade -= 1
senha = ''
return senhas
PRINCIIPAL
senhas = []
print('-='*10)
n = 'GERADOR DE SENHAS'
print(n.center(10))
print('-='*10)
print('1. Gerar senhas')
print('2 [MANUAL] + gerar senhas')
op = 0
while op != 1 and 2:
print('-'*40)
op = int(input('Faça uma escolha: '))
if op == 1 or 2:
break
else:
print('Erro! Tente novamente...')
print('-'*40)
if op == 2:
fim = str(input(('✓ [MANUAL]: Forneça a quantidade de senhas que pretende gerar e de seguida forneça o tamanho mínimo e o tamanho máximo, entretanto se os tamanhos (max e min) forem iguais o tamanho não vai variar de forma aleatória e por fim diga se deseja que nas senhas contenha simbolos digitando [S ou s] pois qualquer outra resposta sera considerada [N - não].\n\n(GERAR - CLIQUE ENTER)')))
print('-'*40)
numSenhas = abs(int(input('Quantas senhas você pretende gerar? ')))
if numSenhas == 0:
print()
else:
tMin = abs(int(input(' -> Tamanho mínimo: ')))
tMax = abs(int(input(' -> Tamanho máximo: ')))
simb = str(input(' -> Adicionar simbolos (@, #,$,&,_...) ? [S/N]: '))
print('-'*40)
print(f'(GERANDO {numSenhas} SENHAS)')
sleep(0.9)
print('-'*40)
if simb.lower() == 's':
senhas = gerar_senhas(numSenhas,tMin, tMax, simb =True)
else:
senhas = gerar_senhas(numSenhas,tMin, tMax)
print(f'[SENHAS GERADAS]: {senhas}')
else:
numSenhas = abs(int(input('Quantas senhas você pretende gerar? ')))
if numSenhas == 0:
print()
else:
tMin = abs(int(input(' -> Tamanho mínimo: ')))
tMax = abs(int(input(' -> Tamanho máximo: ')))
simb = str(input(' -> Adicionar simbolos (@, #,$,&,_...) ? [S/N]: '))
print('-'*40)
print(f'(GERANDO {numSenhas} SENHAS)')
sleep(0.90)
print('-'*40)
if simb.lower() == 's':
senhas = gerar_senhas(numSenhas,tMin, tMax, simb =True)
else:
senhas = gerar_senhas(numSenhas,tMin, tMax)
print(f'[SENHAS GERADAS]: {senhas}')
print('-'*40)
print('')