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![]()
Partager