from tkinter import *
ALFABETO = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
SUBSTITUICAO = "QWERTYUIOPASDFGHJKLZXCVBNM"
def cifra_substituicao(texto):
texto = texto.upper()
resultado = ""
for letra in texto:
if letra in ALFABETO:
indice = ALFABETO.index(letra)
resultado += SUBSTITUICAO[indice]
else:
resultado += letra
return resultado
def decifra_substituicao(texto):
texto = texto.upper()
resultado = ""
for letra in texto:
if letra in SUBSTITUICAO:
indice = SUBSTITUICAO.index(letra)
resultado += ALFABETO[indice]
else:
resultado += letra
return resultado
def app():
texto = Mensagem.get()
modo = var.get()
if not texto:
resultado_texto.config(text="Por favor, insira uma mensagem")
return
if modo == "Cifrado":
resultado = cifra_substituicao(texto)
else:
resultado = decifra_substituicao(texto)
resultado_texto.config(text=resultado)
def limpar():
Mensagem_entrada.delete(0, END)
resultado_texto.config(text="")
def copiar():
resultado = resultado_texto.cget("text")
if resultado:
root.clipboard_clear()
root.clipboard_append(resultado)
root = Tk()
root.geometry("700x400")
root.resizable(0, 0)
root.config(bg="#103030")
root.title("Cifra de Substituição")
titulo = Label(
text="Cifra de Substituição",
font=("Arial", 28, "bold"),
bg="#103030",
fg="#49e3e3"
)
titulo.place(relx=0.15, rely=0.05)
Label(
text="Mensagem:",
font=("Arial", 18, "bold"),
bg="#103030",
fg="#49e3e3"
).place(relx=0.2, rely=0.25)
Mensagem = StringVar()
Mensagem_entrada = Entry(
textvariable=Mensagem,
font=("Arial", 12, "bold"),
bg="white",
fg="blue",
justify='center'
)
Mensagem_entrada.place(relx=0.46, rely=0.26, relwidth=0.45)
Mensagem_entrada.focus()
var = StringVar()
dropDownList = ["Cifrado", "Decifrado"]
dropdown = OptionMenu(root, var, *dropDownList)
var.set(dropDownList[0])
dropdown.place(relx=0.46, rely=0.38, relwidth=0.45)
dropdown.config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
dropdown["menu"].config(background='#09A3BA', foreground="#FFFFFF", font=("Arial", 15, "bold"))
but1 = Button(
text="Converter",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=app
)
but1.place(relx=0.05, rely=0.55, relwidth=0.2, 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.3, rely=0.55, relwidth=0.2, relheight=0.1)
but_copiar = Button(
text="Copiar",
bd=2,
bg='#107db2',
fg='white',
font=('verdana', 12, 'bold'),
command=copiar
)
but_copiar.place(relx=0.55, rely=0.55, relwidth=0.2, 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.8, rely=0.55, relwidth=0.15, relheight=0.1)
resultado_texto = Label(
text="",
font=("Arial", 12, "bold"),
bg="#cfe2f3"
)
resultado_texto.place(relx=0.05, rely=0.75, relwidth=0.9, relheight=0.15)
root.mainloop()