3231
Comentário:
|
4031
|
Deleções são marcadas assim. | Adições são marcadas assim. |
Linha 3: | Linha 3: |
# -*- coding: cp1252 -*- | #!/usr/bin/env python |
Linha 6: | Linha 6: |
# | # |
Linha 9: | Linha 9: |
# # ChangeLog: # - Modificado por FelipeLessa para (2004/01/17): # o Otimizar conjuntos de letras. # o Utilizar "".join ao invés de laço for em password() . # o Retirar tag coding visto que quando o código for copiado & colado do Wiki ele pode ser alterado. # o Texto que aparece por padrão deve corresponder ao especificado no início do arquivo. # o Adicionada a possibilidade de importar arquivo sem abrir a janela. # o Modificações menores. |
|
Linha 10: | Linha 19: |
# Import's |
|
Linha 13: | Linha 24: |
# Tamanho Padrao do password | # Tamanho padrão do password |
Linha 16: | Linha 27: |
# Conjuntos de letras maius = "ABCDEFGHIJKLMNOPQRSTUVXWYZ" minus = "abcdefghijklmnopqrstuvwxyz" # maius.lower() numeros = "0123456789" todas = maius + minus + numeros |
|
Linha 17: | Linha 33: |
def password(vezes, opti): if opti == "maius" : a = "ABCDEFGHIJKLMNOPQRSTUVXWYZ" elif opti == "minus": a = "abcdefghijklmnopqrstuvwxyz" elif opti == "numeros": a = "0123456789" elif opti == "todas": a = "0123456789abcdefghijklmnopqrstuvwxyzABCEDFGHIJKLMOPQRSTUVWXYZ" lista = [] # Lista vazia for p in range(vezes): bb = choice(a) # Escolhe um caractere da variavel "a" lista.append(bb) # Coloca este caractere no fim da lista cc = "" for g in lista: cc = str(cc)+str(g) # Pega as letras e numeros e poe elas em uma string vazia return cc #retorna a string |
# Função por onde todo o programa se desenrola def password(vezes, conjunto=todas): """Gera uma senha aleatória de vezes dígitos baseado numa lista de caracteres passados através da variável conjunto.""" lista = [] # Lista vazia para guardar caracteres temporariamente. |
Linha 35: | Linha 39: |
for n in range(vezes): # Laço repetido o número de vezes especificado char = choice(conjunto) # Escolhe um caracterer da variável "a". lista.append(char) # Coloca o mesmo no fim da lista. result = "".join(lista) # Pega a senha recém-criada e põe em uma string vazia. return result # Retorna a string. # Iniciar criação da GUI |
|
Linha 43: | Linha 55: |
##### Botoes de escolha |
### Botões de escolha |
Linha 50: | Linha 61: |
# Caracteres em letras minusculas | # Caracteres em letras minúsculas |
Linha 54: | Linha 65: |
# Maiusculas | # ... em letras maiúsculas |
Linha 58: | Linha 69: |
# Numeros | # ... apenas números |
Linha 63: | Linha 74: |
tamanho = TextField() # Espaço onde aparece o tamanho dos passwords tamanho.text = "5" # Texto que aparece por padrão quando o programa começa |
tamanho = TextField() # Espaço onde aparece o tamanho dos passwords. tamanho.text = str(pass_tamanho) # Texto que aparece por padrão quando o programa começa. |
Linha 73: | Linha 84: |
Linha 85: | Linha 98: |
#botoes de controle do tamanho do password | # Botoes de controle do tamanho do password |
Linha 96: | Linha 109: |
texto.text = password(pass_tamanho, "todas") | texto.text = password(pass_tamanho, todas) |
Linha 99: | Linha 112: |
texto.text = password(pass_tamanho, "minus") | texto.text = password(pass_tamanho, minus) |
Linha 102: | Linha 115: |
texto.text = password(pass_tamanho, "maius") | texto.text = password(pass_tamanho, maius) |
Linha 105: | Linha 118: |
texto.text = password(pass_tamanho, "numeros") | texto.text = password(pass_tamanho, numeros) |
Linha 121: | Linha 134: |
# Associando o botão a função | # Associando os botões às suas respectivas funções |
Linha 133: | Linha 146: |
app.run() # Roda o programa | if __name__=="__main__": app.run() # Roda o programa |
Codigo
# Pass Generator # Rodrigo Calanca Nishino # # Programa simples que gera passwords # Atenção: Ele usa o anyguy # # ChangeLog: # - Modificado por FelipeLessa para (2004/01/17): # o Otimizar conjuntos de letras. # o Utilizar "".join ao invés de laço for em password() . # o Retirar tag coding visto que quando o código for copiado & colado do Wiki ele pode ser alterado. # o Texto que aparece por padrão deve corresponder ao especificado no início do arquivo. # o Adicionada a possibilidade de importar arquivo sem abrir a janela. # o Modificações menores. # Import's from random import choice from anygui import * # Tamanho padrão do password pass_tamanho = 5 # Conjuntos de letras maius = "ABCDEFGHIJKLMNOPQRSTUVXWYZ" minus = "abcdefghijklmnopqrstuvwxyz" # maius.lower() numeros = "0123456789" todas = maius + minus + numeros # Função por onde todo o programa se desenrola def password(vezes, conjunto=todas): """Gera uma senha aleatória de vezes dígitos baseado numa lista de caracteres passados através da variável conjunto.""" lista = [] # Lista vazia para guardar caracteres temporariamente. for n in range(vezes): # Laço repetido o número de vezes especificado char = choice(conjunto) # Escolhe um caracterer da variável "a". lista.append(char) # Coloca o mesmo no fim da lista. result = "".join(lista) # Pega a senha recém-criada e põe em uma string vazia. return result # Retorna a string. # Iniciar criação da GUI app = Application() janela = Window() janela.title = "Password Generator" texto = TextField() texto.hstretch = 1 ### Botões de escolha # Todos os tipos de caracteres ball = Button() ball.position = 5, 65 ball.text = "ToDa5" # Caracteres em letras minúsculas bmin = Button() bmin.text = "a-z" # ... em letras maiúsculas bmaius = Button() bmaius.text = "A-Z" # ... apenas números bnum = Button() bnum.text = "0-9" tamanho = TextField() # Espaço onde aparece o tamanho dos passwords. tamanho.text = str(pass_tamanho) # Texto que aparece por padrão quando o programa começa. bot_mais = Button() bot_mais.text = "+" bot_menos = Button() bot_menos.text = "-" titulo = Label(text="Cria novos passwords") janela.add(titulo, hstretch = 1) janela.add(texto, position=(0,30), right=5, hstretch=1) janela.add(ball, top=(texto, 5), hmove=0) janela.add(bmin, top=(ball,5), left = 5, hmove=0) janela.add(bmaius, top=(bmin,5), left = 5, hmove=0) janela.add(bnum, top=(bmaius,5), left = 5, hmove=0) janela.add(tamanho, top=(bnum, 15), left=5, width = 35, hmove=0) # Botoes de controle do tamanho do password janela.add(bot_menos, top=(tamanho, 15), left=5, width = 35, hmove=0) janela.add(bot_mais, top=(tamanho, 15), left=(bot_menos, 5), width = 35, hmove=0) janela.size = 180, 280 ######### ###### Funções que os botões acessam quando clicados ######### def handler_ball(event, source, time): texto.text = password(pass_tamanho, todas) def handler_bmin(event, source, time): texto.text = password(pass_tamanho, minus) def handler_bmaius(event, source, time): texto.text = password(pass_tamanho, maius) def handler_bnum(event, source, time): texto.text = password(pass_tamanho, numeros) def handler_size(event, source, time): pass_tamanho = int(tamanho.text) def mais_tamanho(event, source, time): global pass_tamanho pass_tamanho = pass_tamanho + 1 tamanho.text = pass_tamanho def menos_tamanho(event, source, time): global pass_tamanho pass_tamanho = pass_tamanho - 1 tamanho.text = pass_tamanho ### # Associando os botões às suas respectivas funções ### link(ball, handler_ball) link(bmin, handler_bmin) link(bmaius, handler_bmaius) link(bnum, handler_bnum) link(bot_mais, mais_tamanho) link(bot_menos, menos_tamanho) app.add(janela) # Coloca a janela dentro do programa if __name__=="__main__": app.run() # Roda o programa