cesar.py

Created by ph-moutou

Created on April 23, 2018

991 Bytes

La fonction encode permet de coder/décoder un message t avec un code César de clé c. La fonction analyse procède à une analyse des fréquences de chaque lettre de l’alphabet dans le message t; elle renvoie la liste des lettres dans l’ordre des fréquences décroissantes. On peut ainsi afficher le message décodé selon la clé qui s’en déduit pour les principales hypothèses concernant le codage du E.


def encode(t,c):
    tt=''    
    for lettre in t :
        lettre=lettre.upper()
        if 64<ord(lettre)<91:
            tt+=chr((ord(lettre)-65-c)%26+65)
        if 47<ord(lettre)<58:
            tt+=chr((ord(lettre)-48-c)%10+48)
        for e in range(len(tt)-len(tt)%5,0,-5):
            tt=tt[:e]+' '+tt[e+1:]
    return tt

def analyse(t):
    alpha,beta=26*[0],26*[0]
    for lettre in t :
        if 64<ord(lettre)<91:
            alpha[ord(lettre)-65]+=1
    #print('alpha',alpha)
    val=[]
    for e in alpha:
        if e not in val and e!=0 : val.append(e)
    val.sort(reverse=True)
    j=0
    for n in val:
        start=0
        for i in range(alpha.count(n)):
            beta[j]=alpha.index(n,start)+1
            start=beta[j]
            j+=1
    #print('beta',beta)
    return beta

texte='XQEBX MUEMZ FQDUQ EXQEB XGEOA GDFQE EAZFX QEYQU XXQGD QE'
Ordre=analyse(texte)
for i in range(3):
    print('clef={}'.format(Ordre[i]-5),encode(texte,Ordre[i]-5))

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.