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)) |
Partager