Bonjours a tous,
Pour m’entraîner a programmer en python j'ai réaliser un programme qui permet de crypter un fichier selon la méthode du "chiffre du che" (plus d'information ici : http://www.cryptage.org/chiffre-che-guevara.html ).
Voila j'ai réaliser le programme il marche mais je trouve qu'il est un peu mal programmé et j'aimerai avoir votre avis dessus.
Voila en attendant vos critique et futur conseille qui je l’espéré me permettrons de m'améliorer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64 import os # Cette fonction lit le fichier et récupére son texte def encodage(fichier): fs = open(fichier, 'r') # fichier source # On enléve les espace, majuscule, minuscule, accent txt = fs.read() txt = txt.lower() # convertie la chaine en minuscule fs.close() substitution(txt) # Cette fonction substitue les lettre de la chaine def substitution(ch): # On substitue selon la méthode du che substitut = {'a' : 6, 'b' : 38, 'c' : 32, 'd' : 4, 'e' : 8, 'f' : 30, 'g' : 36, 'h' : 34, 'i' : 39, 'j' : 31, 'k':78 , 'l' :72, 'm' : 70,'n' : 76, 'o' :9, 'p' : 79, 'q' : 71, 'r' : 58, 's' : 2, 't': 0, 'u' :52, 'v' :50, 'w' : 56, 'x' : 54, 'y' : 1, 'z' : 59, ' ' : ''} listeNombre = [] # Contiendra les nombre substituée for car in ch: # subtitution # Cette instruction permet de faire la substitution de chaque caractére de la chaine grace au dictionnaire et l'ajoute dans une liste listeNombre.append(substitut[car]) paquet(listeNombre) # Cette fonction va transférer tous les chiffre de la liste dans une chaine def paquet(liste): chCinq = "" # Contiendra la chaine de nombre encodée # Place les élements de la liste dans une chaine espace = 0 for nb in liste: if nb != '': chCinq += str(nb) encodageFinal(chCinq, 25638, 'encoChe') # Cette fonction procéde a l'encodage finale def encodageFinal(chEncoder, cleSecrete, nomDuFichier): encodageFinal = "" # Cette chaine servira au resultat final de l'encodage cleSecrete = str(cleSecrete) i, j = 0, 0 while i < len(chEncoder): if j == len(cleSecrete): j = 0 mod10 = int(chEncoder[i]) + int(cleSecrete[j]) mod10 = mod10 % 10 encodageFinal += str(mod10) i, j = i+1, j+1 print(encodageFinal) # Sépare la chaine en paquet de 5 chFinale, k = "", 0 for n in encodageFinal: if k % 5 == 0: chFinale += ' ' chFinale += n k += 1 print(chFinale) # écriture de l'encodage dans un fichier: fd = open(nomDuFichier, 'w') fd.write(chFinale) fd.close() if __name__ == '__main__': encodage('che')
Partager