Accueil > > > CHIFFRE DE VIGENÈRE
CHIFFRE DE VIGENÈRE
Information sur la source
Description
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
- #! /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()
-
#! /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"
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Cryptage DES [Python] [ par Kadaj676 ]
Bonjour j'aimerais savoir si vous aviez de la documentation sur des algo's de cryptage. Principalement DES, et je voudrais vosu demander, si il est po
Cryptage xor [ par sorcier0011 ]
Bonjour,J'aimerais bien faire un petit crypteur de texte xor mais je n'arrive pas a trouver comment convertir des lettres en Ascii. Parce que apart fa
Pour ne pas planter [ par franckysnow91 ]
Bonjour à tous,Je programme un algorithme sous python et malheureusement, je fais souvent des boucles perverses et je ne réussi pas à m'en sortir. Je
Algorithme Python parité [HELP] [ par Lyd3n ]
Bonjour, j'ai besoin d'aide pour un programme que je dois rendre a un professeur qui m'a poser des contraintes : je ne dois utiliser que "[i]input[/i
[Programme Python] Cryptage RSA (cherche codeur) [ par GelH ]
Bonjour, Je recherche un codeur Python capable de réaliser un programme de cryptage/décryptage d'une chaine de caractère utilisant l'algorithme RSA.
|
Derniers Blogs
CSDL FUNCTIONCSDL FUNCTION par Matthieu MEZIL
Dans mon post précédent , j'ai utilisé une CSDL Function afin de générer une requête SQL avec un DateDiff utilisant la date courante sur la BD à partir d'une requête LINQ. Dans le cadre de ce post , vous avez probablement remarqué que dans le cadre de plu...
Cliquez pour lire la suite de l'article par Matthieu MEZIL LINQ TO ENTITIESLINQ TO ENTITIES par Matthieu MEZIL
Cette semaine je suis à Montréal en tant que speaker sur Entity Framework pour l'évènement confoo . J'en profite pour remercier les organisateurs de cet évènement de m'avoir fait confiance et Access-IT de m'avoir permis d'y participer. En parallèle, j'ai ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010FAIRE APPARAITRE L'ONGLET 'DéVELOPPEUR' DANS OFFICE 2010 par neodante
La nouvelle interface d'Office 2010 à amener quelques modifications par rapport à celle de 2007. Certes mineures, ces modifications ont fait disparaître la case à cocher de l'onglet 'Développeur' en première page du panneau du 'bouton Office' (dans Office...
Cliquez pour lire la suite de l'article par neodante [ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1[ASTUCE] PATCH POUR MICROSOFT FORUMS NNTP BRIDGE V1 par pierre
Si vous avez téléchargé comme moi Microsoft Forums NNTP Bridge V1 avant le 11 mars 2010 (voir [Astuce] Disponibilité de Microsoft Forum NNTP Bridge Version 1.0), un problème de date localisée pour les non anglais était présent. Un patch est disponibl...
Cliquez pour lire la suite de l'article par pierre PB LORS DE L'INSTALLATION SHAREPOINT 2010.PB LORS DE L'INSTALLATION SHAREPOINT 2010. par Patrick Guimonet
Lors de l'installation de SharePoint 2010, j'ai rencontré un problème de plantage à l'étape 5 du configuration Wizard. Ca se termine sur cet écran : Et en analysant le fichier de journalisation, on remarque vers la fin des 15000 et quelques lign...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|