Voilà, c'est ma première source... Soyez donc un peu indulgents SVP :)
Ce programme, avec une interface graphique TKinter, permet de chiffrer et de déchiffrer un texte grâce au chiffre de Vigénère. Remarque : ceci est le VRAI algorithme, ce n'est pas celui qui insère des caractères spéciaux incompréhensibles... (cf. recherche "Vigenere") Algorithme : "Ars cryptographica" sur Google.
Ch'uis débutant, n'hésitez pas à faire des remarques :)
Source / Exemple :
#! /usr/bin/python
# -*- coding: cp1252 -*-
from Tkinter import *
import re
import string
def crypt():
i=0
str_crypted=''
txt3.delete(1.0,END)
str_tocrypt= txt1.get(1.0,END)
str_tocrypt=string.upper(str_tocrypt)
str_tocrypt=re.sub('[^A-Z]','',str_tocrypt)
txt1.delete(1.0,END)
txt1.insert(INSERT,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)
def uncrypt():
i=0
str_crypted=''
txt1.delete(1.0,END)
str_tocrypt=txt3.get(1.0,END)
str_tocrypt=string.upper(str_tocrypt)
str_tocrypt= re.sub('[^A-Z]','',str_tocrypt)
txt3.delete(1.0,END)
txt3.insert(INSERT,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<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
txt1.insert(INSERT,str_crypted)
fen=Tk()
fen.title('Cryptage/Décryptage VIGENERE By ElPutoamo')
Label(fen,text='Texte à CRYPTER/DECRYPTER',fg='red').grid(row=0)
txt1=Text(fen,height=10,width=70)
txt1.grid(row=1)
Label(fen,text='Clé de cryptage',fg='red').grid(row=2)
bou1=Button(fen,text='Décrypter',command=uncrypt)
bou1.grid(row=2,sticky=E)
txt2=Text(fen,height=3,width=70)
txt2.grid(row=3)
bou2=Button(fen,text='Crypter',command=crypt)
bou2.grid(row=4,sticky=W)
Label(fen,text='Texte CRYPTE/A DECRYPTER',fg='red').grid(row=4)
txt3=Text(fen,height=10,width=70)
txt3.grid(row=5)
fen.mainloop()
Conclusion :
1)Entrer le texte à crypter/décrypter.
2)Entrer la clé de cryptage.
3)Cliquer sur "Crypter/Décrypter"
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.