Bonjour,

j'essaye d'instaurer un chiffrement de substitution mono alphabétique dans un projet Python. On l’appelle système du dictionnaire il me semble.

Dans mon code :

- Je vais chercher mon code chiffré dans le txt ( ex : 254, 248, 10, 145...) et j'en fais une liste ( Je ne sais pas si c'est nécessaire )
- Je vais chercher le texte clé pour déchiffrer ce code (ex : Il fais beau Aujourd'hui)
- Je fais les modifications (ex : lfaitbeauaujourdhui)
- Je place les lettres en tant que "clé" dans un dictionnaire et leurs emplacements dans le texte en tant que "valeurs"

Maintenant, j'aimerais comparer les valeurs dans le dictionnaire, au code chiffré qui est une liste.
Et tout simplement retourner les Lettres si leurs valeur est présentes dans le dictionnaire.

(Dict = A:123, B = 435...

Code = 324, 123, 567...

Retourner la lettre A)

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
    import sys
    import string
 
 
 
 
    def Display():
 
    #CRYPTOGRAMME
    chiffre_source = open ("chiffre1.txt", "r")
    Chiffre = contenu_source = chiffre_source.read()
    print ("Le chiffre à décrypter est : ", Chiffre)
    print ("\n")
    input('Appuyez sur Entrer pour continuer')
    print ("\n")
 
    #Nombres du CRYPTOGRAMME introduis dans la liste
    results = []
    with open ('chiffre1.txt') as inputfile:
    for line in inputfile:
    results.append(line.strip().split(','))
 
    #Texte Clé
    cle_source = open ("cle1.txt","r")
    Texte = contenu_source = cle_source.read()
    print ("Le Texte est : ", Texte)
    print ("\n")
    input('Appuyez sur Entrer pour continuer')
    print ("\n")
 
    #Supprimer la ponctuation et les lettres accentuées
    for i in range (0,1):
    Texte = Texte.replace(' ', '')
    punct = set(string.punctuation)
    Texte = ''.join(x for x in Texte if x not in punct)
    Texte = Texte.replace('à', '')
    Texte = Texte.replace('â', '')
    Texte = Texte.replace('ç', '')
    Texte = Texte.replace('è', '')
    Texte = Texte.replace('é', '')
    Texte = Texte.replace('ê', '')
    Texte = Texte.replace('î', '')
    Texte = Texte.replace('ô', '')
    Texte = Texte.replace('ù', '')
    Texte = Texte.replace('û', '')
 
    print ("La clé du Texte est : ",Texte)
    print ("\n")
    input('Appuyez sur Entrer pour continuer')
    print ("\n")
    Dictionnaire = {'A':[], 'B':[], 'C':[], 'D':[], 'E':[], 'F':[], 'G':[], 'H':[], 'I':[],
    'J':[], 'K':[], 'L':[], 'M':[], 'N':[], 'O':[], 'P':[], 'Q':[], 'R':[],
    'S':[], 'T':[], 'U':[], 'V':[], 'W':[], 'X':[], 'Y':[], 'Z':[]}
 
 
    #Si les lettre sont présentes dans le Texte, placer leurs emplacements dans le Dictionnaire
    for i, c in enumerate(Texte):
    if "a" == c:
    Dictionnaire['A'].append(i)
    if "b" == c:
    Dictionnaire['B'].append(i)
    if "c" == c:
    Dictionnaire['C'].append(i)
    if "d" == c:
    Dictionnaire['D'].append(i)
    if "e" == c:
    Dictionnaire['E'].append(i)
    if "f" == c:
    Dictionnaire['F'].append(i)
    if "g" == c:
    Dictionnaire['G'].append(i)
    if "h" == c:
    Dictionnaire['H'].append(i)
    if "i" == c:
    Dictionnaire['I'].append(i)
    if "j" == c:
    Dictionnaire['J'].append(i)
    if "k" == c:
    Dictionnaire['K'].append(i)
    if "l" == c:
    Dictionnaire['L'].append(i)
    if "m" == c:
    Dictionnaire['M'].append(i)
    if "n" == c:
    Dictionnaire['N'].append(i)
    if "o" == c:
    Dictionnaire['O'].append(i)
    if "p" == c:
    Dictionnaire['P'].append(i)
    if "q" == c:
    Dictionnaire['Q'].append(i)
    if "r" == c:
    Dictionnaire['R'].append(i)
    if "s" == c:
    Dictionnaire['S'].append(i)
    if "t" == c:
    Dictionnaire['T'].append(i)
    if "u" == c:
    Dictionnaire['U'].append(i)
    if "v" == c:
    Dictionnaire['V'].append(i)
    if "w" == c:
    Dictionnaire['W'].append(i)
    if "x" == c:
    Dictionnaire['X'].append(i)
    if "y" == c:
    Dictionnaire['Y'].append(i)
    if "z" == c:
    Dictionnaire['Z'].append(i)
 
 
 
 
    print ("Voici les caractères présents dans le Texte et leurs emplacements : ")
    print ("\n")
 
 
    #Afficher les lettres présentes le Texte par odre alphabétique, ainsi que leurs emplacements dans le Texte
    for key, values in sorted (Dictionnaire.items()):
    for i in results:
    if values == values:
    print (key, values)
    print ("\n")
 
    input('Appuyez sur Entrer pour continuer')
    print ("\n")
 
 
    Display()