Ressources pour le projet de chiffrement
- Création d'une interface graphique
Voici le rendu d'une fenêtre qui affiche un texte:
Avant le chargement du fichier : Texte à chiffrer ( contenu du fichier chargé):

Voici le code qui permet d'obtenir cette interface:
# ajout dans projet des fonctions externes nécessaires
import tkinter as tk
from tkinter import filedialog, messagebox
import os
# Création de la fenêtre principale
fenetre = tk.Tk()
fenetre.title("Chiffreur de fichier texte")
# Création du bouton pour charger un fichier texte en appelant la fonction ouvrir_fichier
btn_ouvrir = tk.Button(fenetre, text="Ouvrir un fichier texte", command=ouvrir_fichier)
#
btn_ouvrir.pack(pady=5)
# Création de la zone de texte pour afficher le texte à chiffrer
zone_texte = tk.Text(fenetre, height=20, width=80)
zone_texte.pack(padx=10, pady=5)
# Création du bouton qui lance le chiffrement en appelant la fonction chiffrer_et_enregistrer
btn_chiffrer = tk.Button(fenetre, text="Chiffrer et enregistrer", command=chiffrer_et_enregistrer)
btn_chiffrer.pack(pady=5)
# affichage fenêtre et gestion évènement
fenetre.mainloop()
Pour aller plus loin: voir le dimensionnement et le positionnement avec Tkinter: cliquer ici
Un pdf (moyen) sur le dimensionnement et le positionnement avec Tkinter: cliquer ici
- Création d'une fonction pour ouvrir un fichier dans une zone de texte
# les Variables globales (utilisées par toutes les fonctions pour se transférer des données)
# Variable globale fichier_1 associée au texte à chiffrer ( au début chaîne vide)
fichier1 = ""
# Variable globale fichier_2 associée au texte chiffré (au début chaîne vide)
fichier2 = ""
# Variable globale qui contient le chemin vers le fichier à charger (au début chaîne vide)
chemin_fichier_original = ""
# définition de la fonction
def ouvrir_fichier():
# utilise les variables globales suivantes
global fichier1, chemin_fichier_original
# chemin du fichier sélectionné graphiquement
chemin = filedialog.askopenfilename(filetypes=[("Fichiers texte", "*.txt")])
# si le chemin a été défini
if chemin:
# essaie de charger le contenu du fichier
try:
with open(chemin, "r", encoding="utf-8") as f:
# association du contenu du fichier à la variable fichier1
fichier1 = f.read()
# copie du chemin dans la variable globale
chemin_fichier_original = chemin
zone_texte.delete("1.0", tk.END)
zone_texte.insert(tk.END, fichier1)
# si echec chargement du fichier
except Exception as e:
messagebox.showerror("Erreur", f"Impossible d'ouvrir le fichier : {e}")
- Création d'une fonction pour chiffrer
def chiffrer_et_enregistrer():
# utilise les variables globales suivantes
global fichier1, fichier2, chemin_fichier_original
# si pas de fichier1 affichage d'un message d'erreur
if not fichier1:
messagebox.showwarning("Attention", "Aucun contenu à chiffrer.")
return
# Exemple de chiffrement fictif (à remplacer par votre chiffrement)
fichier2 = "".join(chr((ord(c) + 3) % 256) for c in fichier1)
# si pas de chemin pour enregister le fichier chiffré
if not chemin_fichier_original:
messagebox.showerror("Erreur", "Chemin du fichier d'origine introuvable.")
return
# emplacement de l'enregistrement
dossier = os.path.dirname(chemin_fichier_original)
# ajout du nom de fichier
chemin_fichier2 = os.path.join(dossier, "fichier2.txt")
# tentative de copier le contenu de la variable fichier2 dans fichier2.text
try:
with open(chemin_fichier2, "w", encoding="utf-8") as f:
f.write(fichier2)
messagebox.showinfo("Succès", f"Fichier chiffré enregistré :\n{chemin_fichier2}")
# si erreur de copie
except Exception as e:
messagebox.showerror("Erreur", f"Impossible d'enregistrer le fichier : {e}")
Créé avec HelpNDoc Personal Edition: Produire facilement des livres électroniques Kindle