Bonjour, j'ai pu créer un programme pour coder en Vigenère mais je ne trouve pas de solution pour décoder la phrase obtenue. Voici mon programme de codage. Pouvez-vous m'aider ?? Merci d'avance !

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
cl="mohamednessimetyannis"
 
###ABCDEFGHIJKLMNOPQRSTUVWXYZ##
a="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
b="BCDEFGHIJKLMNOPQRSTUVWXYZA"
c="CDEFGHIJKLMNOPQRSTUVWXYZAB"
d="DEFGHIJKLMNOPQRSTUVWXYZABC"
e="EFGHIJKLMNOPQRSTUVWXYZABCD"
f="FGHIJKLMNOPQRSTUVWXYZABCDE"
g="GHIJKLMNOPQRSTUVWXYZABCDEF"
h="HIJKLMNOPQRSTUVWXYZABCDEFG"
i="IJKLMNOPQRSTUVWXYZABCDEFGH"
j="JKLMNOPQRSTUVWXYZABCDEFGHI"
k="KLMNOPQRSTUVWXYZABCDEFGHIJ"
l="LMNOPQRSTUVWXYZABCDEFGHIJK"
m="MNOPQRSTUVWXYZABCDEFGHIJKL"
n="NOPQRSTUVWXYZABCDEFGHIJKLM"
o="OPQRSTUVWXYZABCDEFGHIJKLMN"
p="PQRSTUVWXYZABCDEFGHIJKLMNO"
q="QRSTUVWXYZABCDEFGHIJKLMNOP"
r="RSTUVWXYZABCDEFGHIJKLMNOPQ"
s="STUVWXYZABCDEFGHIJKLMNOPQR"
t="TUVWXYZABCDEFGHIJKLMNOPQRS"
u="UVWXYZABCDEFGHIJKLMNOPQRST"
v="VWXYZABCDEFGHIJKLMNOPQRSTU"
w="WXYZABCDEFGHIJKLMNOPQRSTUV"
x="XYZABCDEFGHIJKLMNOPQRSTUVW"
y="YZABCDEFGHIJKLMNOPQRSTUVWX"
z="ZABCDEFGHIJKLMNOPQRSTUVWXY"
tout=[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]
 
 
def cryptage_vigenere(messageacrypter): #Permet de crypter une chaine de caractère grâce à la méthode Vigenere
    messageacrypter=messageacrypter.upper() #Mettre en majuscule la chaine
    cle=cl.upper() #mettre en maj la clé 
    lg_m=len(messageacrypter) #donne le nombre d'éléments du message a crypter 
    lg_c=len(cle)
    key=""
    lg_r=lg_m-lg_c  
    if lg_c<lg_m: #si la longueur de la clé est inférieur a celle du message alors : 
        for e in range(lg_r):
            key+=cle #key = key + cle
    messagecrypte=""
    for i in range(lg_m):
        caract_m=messageacrypter[i]
        #print(key)
        caract_c=key[i]
        asc_m=ord(caract_m) #On cherche le décalage de l'alphabet correspond au caractère dans le message / convertir le message en son code ASCII 
        asc_c=ord(caract_c)
        if caract_m==" ":
            caractcode=" "
        elif asc_m>=65 or asc_m<=90 and asc_c>=65 or asc_c<=90: # méthode vigenere
            deca_m=asc_m-65
            deca_c=asc_c-65
            deca_tout=tout[deca_c]
            caractcode=deca_tout[deca_m]
            caractcode=chr(ord(caractcode)) #On applique ce décalage / permet de retourner le code ASCII du premier caractère d'une chaine de caractères
        messagecrypte+=caractcode
    return messagecrypte
 
if __name__=="__main__":
    print("Le message qui était a crypter d'au moins ", len(cl), "caractères :")
    messageacrypter = input()
    print ("")
    print ("La clé : ")
    print (cl)
    print ("")
    print ("Le message crypté :")
    print (cryptage_vigenere(messageacrypter))