• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

PYPT

[Python] Cria senhas aleatoriamente em anygui

3 mensagens neste tópico

Este programa cria senhas aleatórias a partir de uma série de caracteres.

Os caracteres que serão usados para criar a senha e o número de caracteres da mesma são selecionados pelo usuário.

Para a criação da senha em si é usada a função padrão do python random.choice(), que escolhe (óbvio, não? :) ) um item de uma sequência aleatoriamente, sendo que a sequência em questão são os caracteres em si.

Por isso o programa não leva em consideração senhas muito fáceis ou difíceis que ocasionalmente possam ser criadas.

A interface é construída em anygui.

try:
   import anygui as gui
except ImportError:
   from sys import stderr, exit
   print >> stderr, "ERRO: Interface anygui não disponível."
   exit(1)

from random import choice

###
### Função por onde todo o programa se desenrola
###

def criar_password(**kwds):
   carac = ""

   # Usei "abcd..." ao invés de string.lowercase porque está acontecendo algum bug...
   if Check_az.on == 1:
       carac += "abcdefghijklmnopqrstuvwxyz"
   if Check_AZ.on == 1:
       carac += "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
   if Check_09.on == 1:
       carac += "0123456789"

   if carac:
       tamanho = int(TamanhoTField.text)
       if tamanho < 5:
           Texto.text = "Tamanho muito pequeno"
       else:
           final = ""
           for p in xrange(tamanho):
               final += choice(carac)
           Texto.text = final # Pega a variável final e põe dentro de Texto.text .
   else:
       Texto.text = "Parametros invalidos"


###
### Interface Gráfica
###

Programa = gui.Application()

Janela = gui.Window(title="PassGenerator")
Janela.size = (180, 105)

Texto = gui.TextField()
Texto.width = Janela.width
Texto.hstretch = 1
Janela.add(Texto)

OKButton = gui.Button(text="Criar Senha")
OKButton.width = Janela.width - 20
OKButton.hstretch = 1
Janela.add(OKButton, top=(Texto, 5), left = 10)
gui.link(OKButton, criar_password)

Check_az = gui.CheckBox(text="a-z")
Check_az.width = 60
Check_az.on = 1
Janela.add(Check_az, top=(OKButton, 5), left = 5)

Check_AZ = gui.CheckBox(text="A-Z")
Check_AZ.width = 60
Janela.add(Check_AZ, top=(OKButton, 5), left=(Check_az, 5))

Check_09 = gui.CheckBox(text="0-9")
Check_09.width = 60
Janela.add(Check_09, top=(OKButton, 5), left=(Check_AZ, 5))

TamanhoLabel = gui.Label(text="Tamanho")
TamanhoLabel.width = 50
Janela.add(TamanhoLabel, top=(Check_az, 5), left = 5)

TamanhoTField = gui.TextField()
TamanhoTField.width = 50
TamanhoTField.height = 17
TamanhoTField.text = "5"
Janela.add(TamanhoTField, top=(Check_az, 5), left=(TamanhoLabel, 5))

Programa.add(Janela)

if __name__=="__main__":
   Programa.run()

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Evita tópicos em CAPS sff. Não te esqueças que normalmente isso significa 'gritar' quando escrito online e de certeza que não é essa a tua intenção.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Evita tópicos em CAPS sff. Não te esqueças que normalmente isso significa 'gritar' quando escrito online e de certeza que não é essa a tua intenção.

Obrigado pelo conselho.

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora