from tkinter import *
root = Tk()
root.geometry("400x300")
root.resizable(0, 0)
root.config(bg="#d9ead3")
root.title("Cifra de Vigenère")
def cifra_vigenere(texto, chave):
resultado = ""
chave = chave.upper()
texto = texto.upper()
tamanho_chave = len(chave)
for i in range(len(texto)):
char = texto[i]
if char.isalpha():
deslocamento = ord(chave[i % tamanho_chave]) - ord('A')
novo_char = chr((ord(char) - ord('A') + deslocamento) % 26 + ord('A'))
resultado += novo_char
else:
resultado += char
return resultado
def decifra_vigenere(texto, chave):
resultado = ""
chave = chave.upper()
texto = texto.upper()
tamanho_chave = len(chave)
for i in range(len(texto)):
char = texto[i]
if char.isalpha():
deslocamento = ord(chave[i % tamanho_chave]) - ord('A')
novo_char = chr((ord(char) - ord('A') - deslocamento) % 26 + ord('A'))
resultado += novo_char
else:
resultado += char
return resultado
def cifrar():
texto = frase.get()
chave = chaves.get()
texto_cifrado = cifra_vigenere(texto, chave)
resultado1.set(texto_cifrado)
# resultado.config(text="Texto cifrado: " + texto_cifrado)
def decifrar():
texto = frase.get()
chave = chaves.get()
texto_decifrado = decifra_vigenere(texto, chave)
resultado1.set(texto_decifrado)
def limpar():
frase_entrada.delete(0, END)
chaves_entrada.delete(0, END)
titulo = Label(text="Cifra de Vigenère",
font=("Arial", "15", "bold"),bg="#d9ead3",fg="#bf9000")
titulo.place(relx=0.3, rely=0.05)
texto_sub1 = Label(text="Frase:",
font=("Arial", "12", "bold"),bg="#d9ead3",fg="#bf9000")
texto_sub1.place(relx=0.15, rely=0.25)
texto_sub2 = Label(text="Chave:",
font=("Arial", "12", "bold"),bg="#d9ead3",fg="#bf9000")
texto_sub2.place(relx=0.15, rely=0.4)
frase = StringVar()
frase_entrada = Entry(textvariable=frase,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
frase_entrada.place(relx=0.3, rely=0.25, relwidth=0.65)
chaves = StringVar()
chaves_entrada = Entry(textvariable=chaves,
font=("Arial", "12", "bold"),
bg="white", fg="blue", justify='center')
chaves_entrada.place(relx=0.3, rely=0.4, relwidth=0.65)
but_cifrar = Button(text="Cifrar ", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'),command=cifrar)
but_cifrar.place(relx=0.05, rely=0.55, relwidth=0.25, relheight=0.1)
but_decifrar = Button(text="Decifrar", bd=2, bg='#107db2', fg='white',
font=('verdana', 12, 'bold'),command=decifrar)
but_decifrar .place(relx=0.35, rely=0.55, 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.65, rely=0.55, relwidth=0.25, relheight=0.1)
resultado1 = StringVar()
resultado_texto = Label(textvariable=resultado1,
font=("Arial", 12, "bold"), bg="#cfe2f3")
resultado_texto.place(relx=0.2, rely=0.75, relwidth=0.7,relheight=0.15)
root.mainloop()