# -*- 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.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()