Estuve haciendo un sencillo generador de claves, para quienes estamos aprendiendo el uso de tkinter y algunas de sus funciones para hacerlo un poquito más visual.
Es mejor hacer el archivo .pyw para que no salga la molesta consola.
Es todo simple, pero creo ayudará a los más nuevos.
Saludos
#código realizado por tincopasan
#-*- coding: utf -8 -*-
from tkinter import *
from tkinter import messagebox
import string
import random
def generar_pass():
pass_may=cmay.get()
pass_min=cmin.get()
pass_num=cnum.get()
pass_sim=csim.get()
exito= 0
global argumentos
argumentos =""
if pass_may == 1:
mayusculas=string.ascii_uppercase
argumentos = argumentos + mayusculas
exito=1
if pass_min == 1:
minusculas=string.ascii_lowercase
argumentos = argumentos + minusculas
exito = 1
if pass_sim == 1:
simbolos="@#\/¿?¡!.,+-_"
argumentos=argumentos + simbolos
exito = 1
if pass_num == 1:
numeros=string.digits
argumentos= argumentos + numeros
exito=1
if exito == 0:
messagebox.showinfo("¡Error!","Debes seleccionar por lo menos 1 argumento")
if exito == 1:
cuantas = 0
total = arg_cantidad.get()
dic = open("diccionario.txt", "a")
while cuantas < total:
cuantas = cuantas + 1
password = "".join(random.SystemRandom().choice(argumentos) for _ in range(arg_largo.get()))
dic.write(password + "\n")
dic.close()
messagebox.showinfo("¿Atención!","Archivo de claves generado exitosamente")
ventana=Tk()
ventana.title("Generador de Passwords")
ventana.geometry("220x190+200+150")
eleccion=Label(ventana,text="Elija que argumentos utilizar").place(x=0,y=0)
cmay=IntVar()
chkmay=Checkbutton(ventana,text="Mayúsculas",variable=cmay,onvalue=1,offvalue=0).place(x=10,y=20)
cmin=IntVar()
chkmin=Checkbutton(ventana,text="Minúsculas",variable=cmin,onvalue=1,offvalue=0).place(x=10,y=40)
cnum=IntVar()
chknum=Checkbutton(ventana,text="Números",variable=cnum,onvalue=1,offvalue=0).place(x=10,y=60)
csim=IntVar()
chksim=Checkbutton(ventana,text="Símbolos",variable=csim,onvalue=1,offvalue=0).place(x=10,y=80)
largo=Label(ventana,text="¿Largo de la contraseña?: ").place(x=10,y=100)
cantidad=Label(ventana,text="¿Cantidad de contraseñas?: ").place(x=10,y=120)
arg_largo= IntVar()
inicio=Entry(ventana,textvariable= arg_largo, width=2).place(x=160,y=100)
arg_cantidad=IntVar()
cuantas=Entry(ventana,textvariable=arg_cantidad,width=2).place(x=160,y=120)
quien=Label(ventana,text="Realizado por tincopasan").place(x=10,y=170)
boton_generar=Button(ventana,text="Generar pass",command=generar_pass).place(x=130,y=140)
boton_salir=Button(ventana,text="Salir",command=ventana.quit).place(x=10,y=140)
arg_cantidad.set(1)
arg_largo.set(1)
ventana.resizable(0,0)
ventana.mainloop()