Mundo em Python

Senha (validar e confirmar a senha)

from tkinter import *


def verificar_senha(senha):
comprimento = len(senha) >= 8
numero = re.search(r"\d", senha)
caractere_especial = re.search(r"[!@#$%^&*()_+]", senha)
maiuscula = re.search(r"[A-Z]", senha) if all([comprimento, numero, caractere_especial, maiuscula]):
return True, "Senha Válida "
else:
return False, "Senha Inválida \n(A senha deve ter pelo menos 8 caracteres," \
"\n um número, um caractere especial e uma letra maiúscula)"


def validar_senha():
senha_digitada = senha.get().strip()
senha_valida, mensagem = verificar_senha(senha_digitada) if senha_valida:
confirmar_senha_entrada.config(state="normal")
but_confirmar.config(state="normal")
resultado_texto.config(text=mensagem, fg="green")
else:
confirmar_senha_entrada.config(state="disabled")
but_confirmar.config(state="disabled")
resultado_texto.config(text=mensagem, fg="red")
def confirmar_senha():
senha_digitada = senha.get().strip()
senha_confirmada = senha_confirmacao.get().strip() if senha_digitada == senha_confirmada:
resultado_texto1.config(text="As senhas coincidem ", fg="green")
else:
resultado_texto1.config(text="As senhas não coincidem ", fg="red")
def limpar():
senha_entrada.delete(0, END)
confirmar_senha_entrada.delete(0, END)
resultado_texto.config(text="")
resultado_texto1.config(text="")
confirmar_senha_entrada.config(state="disabled")
but_confirmar.config(state="disabled")
def mostrar_senha():
if senha_entrada.cget("show") == "*":
senha_entrada.config(show="")
botao_mostrar.config(text="Ocultar")
else:
senha_entrada.config(show="*")
botao_mostrar.config(text="Mostrar")
def mostrar_senha1():
if confirmar_senha_entrada.cget("show") == "*":
confirmar_senha_entrada.config(show="")
botao_mostrar1.config(text="Ocultar")
else:
confirmar_senha_entrada.config(show="*")
botao_mostrar1.config(text="Mostrar")
# Configuração da janela principal
root = Tk()
root.geometry("500x500")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Validador de Senha") # Título
titulo = Label(text="Senha",
font=("Arial", 28, "bold"), bg="#103030", fg="#49e3e3")
titulo.place(relx=0.4, rely=0.05) # Entrada de Senha
texto_sub1 = Label(text="Digite a senha:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub1.place(relx=0.05, rely=0.25) senha = StringVar()
senha_entrada = Entry(textvariable=senha,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center', show="*")
senha_entrada.place(relx=0.55, rely=0.26, relwidth=0.35) botao_mostrar = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 10, 'bold'), command=mostrar_senha)
botao_mostrar.place(relx=0.55, rely=0.35, relwidth=0.35, relheight=0.05) but_validar = Button(text="Validar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=validar_senha)
but_validar.place(relx=0.1, rely=0.32, relwidth=0.25, relheight=0.1) texto_sub2 = Label(text="Confirmar a senha:",
font=("Arial", 18, "bold"), bg="#103030", fg="#49e3e3")
texto_sub2.place(relx=0.05, rely=0.6) senha_confirmacao = StringVar()
confirmar_senha_entrada = Entry(textvariable=senha_confirmacao,
font=("Arial", 12, "bold"),
bg="white", fg="blue", justify='center', show="*",
state="disabled")
confirmar_senha_entrada.place(relx=0.55, rely=0.61, relwidth=0.35) botao_mostrar1 = Button(text="Mostrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 10, 'bold'), command=mostrar_senha1)
botao_mostrar1.place(relx=0.55, rely=0.7, relwidth=0.35, relheight=0.05) but_confirmar = Button(text="Confirmar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=confirmar_senha,
state="disabled")
but_confirmar.place(relx=0.1, rely=0.75, relwidth=0.25, relheight=0.1) but_limpar = Button(text="Limpar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=limpar)
but_limpar.place(relx=0.4, rely=0.75, relwidth=0.25, relheight=0.1) but_sair = Button(text="Sair", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'), command=root.destroy)
but_sair.place(relx=0.7, rely=0.75, relwidth=0.25, relheight=0.1) resultado_texto = Label(text="",
font=("Arial", 10, "bold"), bg="#cfe2f3", fg="black")
resultado_texto.place(relx=0.05, rely=0.45, relwidth=0.9, relheight=0.1) resultado_texto1 = Label(text="",
font=("Arial", 12, "bold"), bg="#cfe2f3", fg="black")
resultado_texto1.place(relx=0.05, rely=0.85, relwidth=0.9, relheight=0.1) root.mainloop()
0