Skip to content
This page has been auto-translated and may contain errors.View in English

Gerador de senhas

Zee Ei, então o comando enviou um memorando de segurança sobre higiene de senhas e fui chamado a atenção especificamente. Que vergonha. Você pode fazer um pequeno gerador de senhas? Eu informo um comprimento, digo sim ou não para números e símbolos, e ele cospe algo que eu realmente possa usar. Acho que usar "senha123" para todas as contas não é a melhor ideia...

O que você vai construir

Comprimento da senha: 12
Incluir números? (s/n): s
Incluir símbolos? (s/n): s

Gerado: k7#mP9xQ!2aL

O que você vai precisar

  • Saída e entrada — coletar as preferências do usuário
  • Strings — caracteres, juntar uma lista de caracteres novamente em uma string
  • Listas — construir e combinar o conjunto de caracteres permitidos
  • Módulos e a biblioteca padrãorandom para escolher caracteres, string para conjuntos de caracteres pré-construídos

Dicas

Construa o conjunto primeiro. Comece com uma lista vazia de caracteres permitidos. Adicione letras sempre, depois adicione condicionalmente dígitos ou símbolos com base no que o usuário escolheu.

O módulo string poupa trabalho. Ele tem strings prontas para você: string.ascii_letters, string.digits, string.punctuation. Não precisa digitá-las.

Escolha, depois junte. Escolha um caractere por vez usando random.choice(), repita isso pelo comprimento solicitado pelo usuário, e então junte os resultados em uma única string.

Indo além

Quando o gerador básico funcionar:

  • Garanta as regras. Se o usuário pediu números, certifique-se de que pelo menos um número apareça no resultado. O mesmo para símbolos. Escolher puramente ao acaso pode deixá-los de fora.
  • Gere um lote. Permita que o usuário peça várias senhas de uma vez e exiba todas elas.
  • Indicador de força. Após gerar, imprima uma breve avaliação: fraca (apenas letras), média (letras + números), forte (letras + números + símbolos).