IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Téléchargé 6 fois
Vote des utilisateurs
0 
0 
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

Script de calcul de somme de controle d'un fichier (interface graphique)
chiffrement md5, sha1, sha256, sha512
Avatar de wiztricks
Expert éminent sénior https://www.developpez.com
Le 06/04/2025 à 15:57
Salut,

Citation Envoyé par softGeek Voir le message
Qu'en pensez-vous ?
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)
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
Avatar de papajoker
Expert confirmé https://www.developpez.com
Le 06/04/2025 à 17:39
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:
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")
ps: et si on utilise un combo, alors on l'alimente avec la structure "actions"
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.