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

title: Gerador de senha description: Crie um script que gera uma senha aleatória a partir de um conjunto de caracteres que o usuário controla.

Gerador de senha

Zee Oi, então a empresa enviou um memorando sobre segurança de senha e fui chamada especificamente. Constrangedor. Você pode fazer um pequeno gerador de senha? Eu dou um comprimento, sim ou não para números e símbolos, ele cria algo que eu realmente possa usar. Acho que usar "senha123" em todas as contas não é o melhor...

O que você vai construir

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

Gerada: k7#mP9xQ!2aL

O que você vai precisar

  • Output e input - coletando as preferências do usuário
  • Strings - caracteres, unindo uma lista de caracteres de volta para uma string
  • Listas - construindo e combinando o conjunto de caracteres permitidos
  • Módulos e a biblioteca padrão - random 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 economiza trabalho. Ele tem strings prontas para você: string.ascii_letters, string.digits, string.punctuation. Sem necessidade de digitá-las.

Escolha, depois una. Escolha um caractere por vez usando random.choice(), repita isso pelo comprimento que o usuário pediu, depois una os resultados em uma única string.

Indo além

Uma vez que o gerador básico funciona:

  • 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 não incluí-los.
  • Gere um lote. Deixe o usuário pedir várias senhas de uma vez e exiba todas elas.
  • Indicador de força. Depois de gerar, imprima uma classificação breve: fraca (apenas letras), média (letras + números), forte (letras + números + símbolos).