Bonjour,
je passe mon Bac ISN et j'ai du programmer en python. J'ai du crypter et decrypter avec deux codes : césar et vigenère. J'ai aussi fait des interfaces graphiques.

J'ai un problème cependant;sur mon code césar, il accepte les espaces, dans mon code vigenère les espaces ne sont pas acceptés
Pouvez vous m'aider ?

#---------------------------- cesar cryptage ------------------------------

def cesar_crypte():
phrase = txt1.get()
str_crypted=""
txt3.delete(1.0, END)
for caractere in phrase :
if caractere.islower():
str_crypted+=chr(((ord(caractere)-97+3)%26)+97)
elif caractere.isupper():
str_crypted+=chr(((ord(caractere)-65+3)%26)+65)
elif ord(caractere)==32:
str_crypted+=chr(32)
txt3.insert(INSERT,str_crypted)

#---------------------------- cesar décryptage ------------------------------

def cesar_decrypte():
phrase2 = txt4.get()
str_crypted=""
txt6.delete(1.0, END)
for caractere in phrase2 :
if caractere.islower():
str_crypted+=chr(((ord(caractere)-97-3)%26)+97)
elif caractere.isupper():
str_crypted+=chr(((ord(caractere)-65-3)%26)+65)
elif ord(caractere)==32:
str_crypted+=chr(32)
txt6.insert(INSERT,str_crypted)


#------------------------- vigenere cryptage ---------------------------------
def crypt():
i=0
str_crypted=""
txt3.delete(1.0, END)
str_tocrypt= txt1.get()

str_tocrypt=string.upper(str_tocrypt)
str_tocrypt=re.sub("[^A-Z]","",str_tocrypt)

txt1.delete(0, END)
txt1.insert(0,str_tocrypt)
cle=txt2.get(1.0, END)

cle=string.upper(cle)
cle=re.sub("[^A-Z]","",cle)

txt2.delete(1.0, END)
txt2.insert(INSERT,cle)
while i<=len(str_tocrypt)-1:
if i<=len(cle)-1:
let_interm = cle[i]
decalage=ord(let_interm)-65
if ord(str_tocrypt[i])+decalage>90:
let_new=chr(ord(str_tocrypt[i])+decalage-26)
else:
let_new=chr(ord(str_tocrypt[i])+decalage)
str_crypted+=let_new
else:
let_interm=cle[i-(i/len(cle))*len(cle)]
decalage=ord(let_interm)-65
if ord(str_tocrypt[i])+decalage>90:
let_new=chr(ord(str_tocrypt[i])+decalage-26)
else:
let_new=chr(ord(str_tocrypt[i])+decalage)
str_crypted+=let_new
i=i+1

txt3.insert (INSERT,str_crypted)

#------------------------ vigenere decryptage ------------------------------------

def uncrypt():
i=0
str_crypted=""
txt6.delete(1.0,END)
str_tocrypt=txt4.get()

str_tocrypt=string.upper(str_tocrypt)
str_tocrypt= re.sub("[^A-Z]","",str_tocrypt)

txt4.delete(0,END)
txt4.insert(0,str_tocrypt)
cle=txt5.get(1.0,END)

cle=string.upper(cle)
cle=re.sub("[^A-Z]","",cle)

txt5.delete(1.0,END)
txt5.insert(INSERT,cle)

while i<=len(str_tocrypt)-1:
if i<=len(cle)-1:
let_interm = cle[i]
decalage=ord(let_interm)-65
if ord(str_tocrypt[i])-decalage<65:
let_new=chr(ord(str_tocrypt[i])-decalage+26)
else:
let_new=chr(ord(str_tocrypt[i])-decalage)
str_crypted+=let_new
else:
let_interm=cle[i-(i/len(cle))*len(cle)]
decalage=ord(let_interm)-65
if ord(str_tocrypt[i])-decalage<65:
let_new=chr(ord(str_tocrypt[i])-decalage+26)
else:
let_new=chr(ord(str_tocrypt[i])-decalage)
str_crypted+=let_new
i=i+1

txt6.insert(INSERT,str_crypted)

#------------------------------ Interface -----------------------------------

#------------------------ cryptage ---------------------------------

champ1=Label(fen,text='Texte à crypter',fg='black')
champ1.grid (row=1,column=1)

txt1=Entry(fen,width=40)
txt1.grid(row=2,column=1)

champ2=Label(fen,text='Clef de cryptage',fg='black')
champ2.grid(row=3,column=1)

txt2=Text(fen,height=1,width=20)
txt2.grid(row=4,column=1)

champ3=Label(fen,text='Texte crypté',fg='black')
champ3.grid(row=6,column=1)

txt3=Text(fen,height=3,width=40)
txt3.grid(row=7,column=1)

#--------------------------- decryptage -------------------------

champ4=Label(fen,text='Texte a décrypter',fg='black')
champ4.grid(row=8,column=1)

txt4=Entry(fen,width=40)
txt4.grid(row=9,column=1)

champ5=Label(fen,text='Clef de cryptage',fg='black')
champ5.grid(row=10,column=1)

txt5=Text(fen,height=1,width=20)
txt5.grid(row=11,column=1)

champ6=Label(fen,text='Texte décrypté',fg='black')
champ6.grid(row=13,column=1)

txt6=Text(fen,height=3,width=40)
txt6.grid(row=14,column=1)

#---------------------------- bouton cesar cryptage ------------------------------

Bouton_cryptage =Button(fen,text='Crypter César',command=cesar_crypte, fg='red')
Bouton_cryptage.grid(row=5,column=1,sticky=W)

#---------------------------- bouton cesar décryptage ------------------------------

Bouton_decryptage =Button(fen,text='Décrypter César',command=cesar_decrypte, fg='red')
Bouton_decryptage.grid(row=12,column=1,sticky=W)

#--------------------------- bouton vigenere cryptage ----------------------------

bou2=Button(fen,text='Crypter Vigenère',command=crypt,fg='red')
bou2.grid(row=5,column=1,sticky=E)

#-------------------------- bouton vigenere décryptage --------------------------

bou1=Button(fen,text='Décrypter Vigenère',command=uncrypt,fg='red')
bou1.grid(row=12,column=1,sticky=E)


fen.mainloop()




Merci