Uncle Den's Uncle Den's

Le chiffre de César (codage/décodage)


Nous traitons ici du code de César (substitution) et non du Code César Progressif ni du Chiffre Carré de César


Le principe du code de césar est de décaler les lettres de l'alphabet d'une ou plusieurs place.
On peut ainsi déplacer le A qui devient B, le B qui devient C... lorsqu'on le déplace d'un seul cran.

L'utilisation de l'histogramme d'un texte est alors particulièrement interessant pour identifier ce décalage.

source=open(u'etranger04_sans_espace.txt',"r")
decalage=3
offset=97
txt=""
texte=source.read()
texte=texte.lower()
longtxt=len(texte)

for i in range(longtxt):
    lettre=texte[i]
    code=offset+((ord(lettre)-offset+decalage)%26)
    txt+=chr(code)
    # on aurait pu ecrire directement:
    # txt+=chr(offset+((ord(texte[i])-offset+decalage)%26))
   
destination = open("cesar_decal"+str(decalage)+".txt", "w")
destination.write(txt)
destination.close()
source.close()

Pour le décodage, c'est exactement le même fichier, mais au lieu de faire un décalage de 3 (voir exemple ci dessus), il faut faire un décalage de -3

>> Code de Vigénère
<< retour accueil cryptographie et Python.