from tkinter import *
import tkinter as tk
import random
import string
def encrypt_message():
message_a_chiffrer = entry_message.get()
a = len(message_a_chiffrer)
if a <= 10:
b = 10 - a
b = "a" * b
message_a_chiffrer = message_a_chiffrer + b
mode = variable.get()
if mode == "Transposition":
def chiffr(message_a_chiffrer):
message_chiffre = " "
for i in message_a_chiffrer:
char_code = ord(i)
new_char_code = char_code + 3
encrypted_char = chr(new_char_code)
message_chiffre = message_chiffre + encrypted_char
return message_chiffre
def dechiffr(message_chiffre):
dechiffre_message = " "
for i in message_chiffre:
char_code = ord(i)
dechiffre_char_code = char_code - 3
dechiffre_char = chr(dechiffre_char_code)
dechiffre_message = dechiffre_message + dechiffre_char
return dechiffre_message
label_result.config(text="Le message Chiffré est : " + chiffr(message_a_chiffrer))
label_result1.config(text="Le message Déchiffré est : " + dechiffr(chiffr(message_a_chiffrer)))
elif mode == "Substitution":
message_a_chiffre = " "
key = {'a': 'q', 'b': 'w', 'c': 'e', 'd': 'r', 'e': 't', 'f': 'y', 'g': 'u',
'h': 'i', 'i': 'o', 'j': 'p', 'k': 'a', 'l': 's', 'm': 'd', 'n': 'f',
'o': 'g', 'p': 'h', 'q': 'j', 'r': 'k', 's': 'l', 't': 'z', 'u': 'x',
'v': 'c', 'w': 'v', 'x': 'b', 'y': 'n', 'z': 'm'}
def chiff(message_a_chiffrer, key) :
message_chiffre = ""
for char in message_a_chiffrer:
if char in key:
message_chiffre += key[char]
else:
message_chiffre += char
return message_chiffre
def dechiff(message_chiffre, key) :
message_chiffre=chiff(message_a_chiffrer, key)
message_original = ""
inverse_key = {value: key for key, value in key.items()}
for char in message_chiffre:
if char in inverse_key:
message_original += inverse_key[char]
else:
message_original += char
return message_original
label_result.config(text=" Le message Chiffré est : " + chiff(message_a_chiffrer, key))
label_result1.config(text="Le message Déchiffré est : " + dechiff(chiff(message_a_chiffrer, key), key))
root = tk.Tk()
root.geometry("800x800")
root.title("Programme de chiffrement")
filename = PhotoImage(file = "output-onlinepngtools.png")
background_label = Label( image=filename)
background_label.place(x=0, y=0, relwidth=1, relheight=1)
title_label = Label(bg="cyan",font=("Time New Roman",30) ,text="Welcome to Hajji Slimane's encryption program")
title_label.place(x=90,y=20,)
mode_label = tk.Label(root, bg="lime",font=("Time New Roman",20), text="Type de chiffrement (Substitution or Transposition):")
mode_label.place(x=100,y=100,)
variable = StringVar(root)
variable.set("Choisir le type de chiffrement",)
mode_choice = OptionMenu(root, variable, "Substitution", "Transposition")
mode_choice.place(x=600,y=105,)
label_message = tk.Label(root, bg="lime",font=("Time New Roman",20), text="Message à chiffrer:")
label_message.place(x=100,y=200,)
# Créer une zone de texte qui permet a l’utilisateur de saisir le message a chiffrer
entry_message = tk.Entry(root,bg="lime",font=("Time New Roman",20))
entry_message.place(x=500,y=200,)
# créer une bouton avec le texte "Clicker pour chiffrer le message"
# configure la bouton pour executer la fonction encrypt_message
button_encrypt = tk.Button(root,fg="blue",bg="lime",font=("Time New Roman",20), text="Clicker pour chiffrer le message",
command=encrypt_message)
button_encrypt.place(x=250,y=300,)
# créer une zone pour afficher le résultat du chiffrement
label_result = tk.Label(root,bg="lime",font=("Time New Roman",20), text="")
label_result.place(x=300,y=400,)
# créer une zone pour afficher le résultat du dechiffrement
label_result1 = tk.Label(root,bg="lime",font=("Time New Roman",20), text="")
label_result1.place(x=300,y=450,)
root.mainloop()