Téléchargé 6 fois
Vote des utilisateurs


Détails
Licence : Non renseignée
Mise en ligne le 4 avril 2025
Plate-formes :
Linux, Windows
Langue : Français
Référencé dans
Navigation
checksum
checksum
Script de calcul de somme de controle d'un fichier (interface graphique)
chiffrement md5, sha1, sha256, sha512
chiffrement md5, sha1, sha256, sha512
Salut,
Réaliser de petits projets, c'est pour se montrer qu'on a appris un peu quelque chose dans la documentation/cours/tutos qu'on a pris le temps d'ouvrir. Vous avez déjà posté un petit projet similaire vigenere_gtk.py, il y a peu.
Je comprends qu'il puisse être frustrant de casser son élan en se perdant dans la documentation, mais entre deux projets, ouvrir la documentation pour voir ce qui aurait pu être utilisé (à la place de coder un truc sur un coin de table par ignorance) vous aurait permis de découvrir les fonctionnalités file dialog, messagebox, ... et les utiliser ici.
Le choix forcé entre les chiffrements 'md5', 'sha1', 'sha256', 'sha512' pourrait être l'occasion d'utiliser une Combobox.
Outre la connaissance des widget de base, vous recopiez du code qui marche parce qu'on n'y regarde pas de trop près mais qui est "buggy".
Un exemple parmi tant d'autres:
Le parent de la Scrollbar étant le widget Text, pack va l'afficher par dessus et masquer quelques une des colonnes les plus à droite.
Normalement, on crée un Frame pour en faire le parent du widget Text et de la Scrollbar associée, ce qui permet à pack d'afficher les widgets Text et Scrollbar côte à côte et "au dessus" de la Frame (même si dans ce cas on préfèrera le widget composite ScrolledText).
- W
Réaliser de petits projets, c'est pour se montrer qu'on a appris un peu quelque chose dans la documentation/cours/tutos qu'on a pris le temps d'ouvrir. Vous avez déjà posté un petit projet similaire vigenere_gtk.py, il y a peu.
Je comprends qu'il puisse être frustrant de casser son élan en se perdant dans la documentation, mais entre deux projets, ouvrir la documentation pour voir ce qui aurait pu être utilisé (à la place de coder un truc sur un coin de table par ignorance) vous aurait permis de découvrir les fonctionnalités file dialog, messagebox, ... et les utiliser ici.
Le choix forcé entre les chiffrements 'md5', 'sha1', 'sha256', 'sha512' pourrait être l'occasion d'utiliser une Combobox.
Outre la connaissance des widget de base, vous recopiez du code qui marche parce qu'on n'y regarde pas de trop près mais qui est "buggy".
Un exemple parmi tant d'autres:
Code : | Sélectionner tout |
1 2 3 4 5 6 | sortie = Text(fen, font="Times 14", bg="dark grey", fg="blue", width=150, height=40) sortie.pack(side=TOP, expand=YES, fill=BOTH, padx=15, pady=15) asc_sortie = Scrollbar(sortie, command=sortie.yview) sortie.configure(yscrollcommand=asc_sortie.set) asc_sortie.pack(side=RIGHT, expand=NO, fill=Y, padx=2, pady=2) |
Normalement, on crée un Frame pour en faire le parent du widget Text et de la Scrollbar associée, ce qui permet à pack d'afficher les widgets Text et Scrollbar côte à côte et "au dessus" de la Frame (même si dans ce cas on préfèrera le widget composite ScrolledText).
- W
bonjour
même chose au niveau de l'interface graphique, tout est à revoir. Cette version ne propose rien d'intéressant pour l'utilisateur.
A la création de l'interface, on doit tout faire plus simplifier l'usage et certainement pas pour simplifier le travail du codeur (ce qui semble être ton cas)
Au niveau python (pas de TK),
J'ai en première impression que tu ne te relis même pas.
exemples:
- recup_info() s = fichier.encode('utf-8') d'une utilité
- structure du code dans calcul_somme(), tu comptes sur la gui pour avoir un cheminement "logique" (fen_erreur)
- variable choix_chiffrement : cela partait bien puis ... jamais utilisé
- lire un fichier d'une façon plus que excentrique
un exemple de code (en touchant au minimum a ton existant, même pas la lecture farfelue du fichier), peut-être:
ps: et si on utilise un combo, alors on l'alimente avec la structure "actions"
même chose au niveau de l'interface graphique, tout est à revoir. Cette version ne propose rien d'intéressant pour l'utilisateur.
A la création de l'interface, on doit tout faire plus simplifier l'usage et certainement pas pour simplifier le travail du codeur (ce qui semble être ton cas)
Au niveau python (pas de TK),
J'ai en première impression que tu ne te relis même pas.
exemples:
- recup_info() s = fichier.encode('utf-8') d'une utilité

- structure du code dans calcul_somme(), tu comptes sur la gui pour avoir un cheminement "logique" (fen_erreur)

- variable choix_chiffrement : cela partait bien puis ... jamais utilisé

- lire un fichier d'une façon plus que excentrique
un exemple de code (en touchant au minimum a ton existant, même pas la lecture farfelue du fichier), peut-être:
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | actions = { "md5": {"name": " md5", "action": hashlib.md5}, "sha1": {"name": " sha1", "action": hashlib.sha1}, "sha256": {"name": " sha256", "action": hashlib.sha256}, "sha512": {"name": " sha512", "action": hashlib.sha512}, } # ou autre structure def recup_info(): ... calcul_somme(fichier, actions.get(methode_chiffrement, None)) def calcul_somme(fichier, action_chiffrement): if not action_chiffrement: message("ERREUR", "Methode de chiffrement non valide") return try: ... somme = action_chiffrement["action"]() somme.update(lignes) except FileNotFoundError: message("ERREUR", "Fichier non trouver") return sortie_chiffrer.insert(END, "[" + fichier + "]" + "[" + action_chiffrement["name"] + "] " + somme.hexdigest() + "\n") |
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.