Comprobacion de password y usuario con metodos en tkinter
# -*- coding: utf-8 -*- from Tkinter import * import tkMessageBox def usercomp(): cuser=user.get() longitud=len(cuser) notnum=cuser.isalnum() if notnum == False: tkMessageBox.showinfo("Error", "El nombre de usuario puede contener solo letras y números") elif longitud < 6: tkMessageBox.showinfo("Error","El nombre de usuario debe contener al menos 6 caracteres") elif longitud > 12: tkMessageBox.showinfo("Error", "El nombre de usuario no puede contener más de 12 caracteres") elif longitud > 5 and longitud < 13 and notnum == True: return True def clavecomp(): cpasword=pasword.get() validar = False # que se vayan cumpliendo los requisitos uno a uno. long = len(cpasword) # Calcula la longitud de la contraseña espacio = False # variable para identificar espacios mayuscula = False # variable para identificar letras mayúsculas minuscula = False # variable para contar identificar letras minúsculas numeros = False # variable para identificar números y = cpasword.isalnum() # si es alfanumérica retona True correcto = True # verifica que hayan mayuscula, minuscula, numeros y no alfanuméricos for carac in cpasword: # ciclo for que recorre caracter por caracter en la contraseña if carac.isspace() == True: # Saber si el caracter es un espacio espacio = True # si encuentra un espacio se cambia el valor user if carac.isupper() == True: # saber si hay mayuscula mayuscula = True # acumulador o contador de mayusculas if carac.islower() == True: # saber si hay minúsculas minuscula = True # acumulador o contador de minúsculas if carac.isdigit() == True: # saber si hay números numeros = True # acumulador o contador de numeros if espacio == True: # hay espacios en blanco tkMessageBox.showinfo("Error en la contraseña", "La contraseña no puede contener espacios") else: validar = True # se cumple el primer requisito que no hayan espacios if long < 8 and validar == True: tkMessageBox.showinfo("Error en la contraseña ","Mínimo 8 caracteres") validar = False # cambia a Flase si no se cumple el requisito móinimo de caracteres if mayuscula == True and minuscula == True and numeros == True and y == False and validar == True: validar = True # Cumple el requisito de tener mayuscula, minuscula, numeros y no alfanuméricos else: correcto = False # uno o mas requisitos de mayuscula, minuscula, numeros y no alfanuméricos no se cumple if validar == True and correcto == False: tkMessageBox.showinfo("Aviso", "La contraseña elegida no es segura: debe contener letras minúsculas, mayúsculas, números y al menos 1 carácter no alfanumérico") if validar == True and correcto == True: return True def validation(): correcto = False if correcto == False: if usercomp() == True: correcto = True if correcto == True: if clavecomp() == True: tkMessageBox.showinfo("Aviso", "Usuario y contraseña creados exitosamente") correcto = False raiz=Tk() raiz.title("ventana primaria") raiz.resizable(1,1) #para permitir agrandar o no el ancho o la altura con el moyuse raiz.iconbitmap("descarga.ico") #raiz.geometry("500x600") raiz.config(bg="cyan") raiz.config(bd=15) raiz.config(relief="groove") miFrame=Frame(raiz) miFrame.pack() miFrame.config(bg="pink") miFrame.config(bd=10) miFrame.config(relief="sunken") miFrame.config(cursor="hand2") miLabel1=Label(miFrame, text="Ingrese sus datos", fg="red",bg="pink",font=("Arial",18)).grid(row=0,column=0,pady="4") nombreusuarioLabel=Label(miFrame, text="Nombre usuario: ",bg="pink").grid(row=3,column=0, sticky="w",pady="1") contrasenaLabel=Label(miFrame, text="Contraseña: ",bg="pink").grid(row=4,column=0,sticky="w",pady="1") user=StringVar() pasword=StringVar() cuadronombreusuario=Entry(miFrame, textvariable=user) cuadronombreusuario.grid(row=3,column=1,pady="1") cuadronombreusuario.config(fg="blue", justify="center") cuadrocontrasena=Entry(miFrame, textvariable=pasword) cuadrocontrasena.grid(row=4,column=1,pady="1") cuadrocontrasena.config(show="*",fg="blue", justify="center") botonEnvio=Button(raiz, text= "Enviar",command=validation) botonEnvio.pack() raiz.mainloop()
Interfaz:
Errores:
Datos ingrasados correctamente:
Comentarios
Publicar un comentario