Hola amigos hoy crearemos un generador de contraseñas en python, ya que estoy aprendiendo este lenguaje se me hiso interesante crear uno ya que podria servir para ser los keygen asi que empesamos
primero importamos las librerias a usar
from tkinter import Tk,Label,Button,Entry
from functools import partial
import tkinter as tk
import random
luego crearemos la ventana con sus dimensiones, con su titulo y color asi
ventana=Tk()
ventana.title("Password Generator")
ventana.geometry("600x200")
ventana.config(bg="black")
despues creamos una etiqueta que tendra como contenido password y declaramos su color de fondo,su color de letra, ancho, alto y posicion
etiqueta=Label(ventana,text="Password:",bg="black",fg="white")
etiqueta.place(x=100,y=5,width=70,height=30)
despues creamos el cuadro de texto donde se mostraran las contraseñas y con las mismas caracteristicas, ancho,color de fondo,color de letra,ancho,alto y posicion
texto=Entry(ventana,bg="black",fg="white",justify="center")
texto.place(x=180,y=10,width=300,height=20)
luego inicializamos la variable t en nulo
t=""
despues cremos 2 botones el cual uno sera para detener el generador de contraseñas y otro para generarlas automaticamente asi
boton1=Button(text="Generar",bg="black",fg="white",command=partial(inicio,"0"))
boton1.place(x=200,y=50)
boton2=Button(text="Detener",bg="black",fg="white",command=partial(inicio,"1"))
boton2.place(x=300,y=50)
estos botones al darle clic mandan llamar a una funcion llamada inicio, por ultimo mandamos llamar al metodo mainloop() de la ventana
ventana.mainloop()
asi que ahora pasaremos a crear las funciones primero haremos la funcion inicio esta
def inicio(n):
global t
t=n
if t=="0":
t="0"
etiqueta.after(100,star)
elif t=="1":
t="1"
la variable t la usaremos como variable global para que pueda ser usada dentro de las fucniones, la funcion inicio recibe un valor y ese valor puede ser 0 o 1 cuando lo reciva se lo pasa a la variable global t y esta es comparada en el if si es igual a 0 ejecuta la funcion star la cual veremos adelante y es la encargada de generar las contraseñas y si es 1 no hace nada solo me asegure que si se vuelve a ejecutar la funcion inicio t siguiera valiendo 1 y deje de generar contraseñas...ahora pasamos a la funcion star
def star():
cadena="ABCDEFGHIJKLMNÑOPQRSTUVWXYZabcdefghijklmnñopqrstuvwxyz0123456789"
n=random.randrange(15,30) #genera un numero al azar desde 15 a 30 que sera la longitud de la contraseña
largo=len(cadena) #optiene la longitud de la variable cadena
clave="" #inicializa la variable en nulo
valor=texto.get() #extrae el contenido del campo de texto
if valor!="": #pregunta si es diferente de nulo
texto.delete(0,tk.END) #borra el contenido del campo de texto
for x in range(0,n): #ciclo for se repite segun el valor de n
digito=random.randrange(0,largo) #genera un numero al azar desde 0 a la longitud de la variable cadena
clave+=cadena[digito:digito+1] #extrae el digito de la variable cadena y lo concatena en la variable clave
texto.insert("end",clave) #inserta el valor de la variable clave al campo de texto
inicio(t) #manda llamar la funcion inicio
lo que hace esta funcion es inicializar la variable cadena con todos los digitos a usar en las contraseñas, yo puse esos solo para el ejemplo ustedes pueden agregarle mas como paréntesis u otros signos.
bueno despues inicializa la variable n en un rango de 15 a 30 digitos que es la longitud de la contraseña a generar, seguimos inicializando la variable largo que toma la longitud de la variable cadena y la variable clave es inicializada en nulo.
despues extraemos lo que contiene el campo de texto y lo pasamos a la variable valor y pregunta si es diferente de nulo con el comando if y si esta nulo sigue no entra al if pero si entra es borrado el contenido del campo texto.
luego entra al for donde la variable digito toma una posicion al azar con el comando random desde 0 a la longitud de la variable cadena y despues extraemos ese digito de la variable cadena y se le concatena a la variable clave....Saliendo del for al cuadro de texto se le incerta el valor de la variable clave que es la contraseña que se genero al azar para despues mandar llamar la funcion inicio.
bueno aqui el codigo completo
y les dejo una foto como ejemplo
bueno eso es todo saludos y espero les guste Flamer