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
| import os
# Cette fonction lit le fichier et récupére son texte
def encodage(fichier):
fs = open(fichier, 'r') # fichier source
# On enléve les espace, majuscule, minuscule, accent
txt = fs.read()
txt = txt.lower() # convertie la chaine en minuscule
fs.close()
substitution(txt)
# Cette fonction substitue les lettre de la chaine
def substitution(ch):
# On substitue selon la méthode du che
substitut = {'a' : 6, 'b' : 38, 'c' : 32, 'd' : 4, 'e' : 8, 'f' : 30, 'g' : 36, 'h' : 34, 'i' : 39, 'j' : 31, 'k':78 , 'l' :72, 'm' : 70,'n' : 76, 'o' :9, 'p' : 79, 'q' : 71, 'r' : 58, 's' : 2, 't': 0, 'u' :52, 'v' :50, 'w' : 56, 'x' : 54, 'y' : 1, 'z' : 59, ' ' : ''}
listeNombre = [] # Contiendra les nombre substituée
for car in ch: # subtitution
# Cette instruction permet de faire la substitution de chaque caractére de la chaine grace au dictionnaire et l'ajoute dans une liste
listeNombre.append(substitut[car])
paquet(listeNombre)
# Cette fonction va transférer tous les chiffre de la liste dans une chaine
def paquet(liste):
chCinq = "" # Contiendra la chaine de nombre encodée
# Place les élements de la liste dans une chaine
espace = 0
for nb in liste:
if nb != '':
chCinq += str(nb)
encodageFinal(chCinq, 25638, 'encoChe')
# Cette fonction procéde a l'encodage finale
def encodageFinal(chEncoder, cleSecrete, nomDuFichier):
encodageFinal = "" # Cette chaine servira au resultat final de l'encodage
cleSecrete = str(cleSecrete)
i, j = 0, 0
while i < len(chEncoder):
if j == len(cleSecrete):
j = 0
mod10 = int(chEncoder[i]) + int(cleSecrete[j])
mod10 = mod10 % 10
encodageFinal += str(mod10)
i, j = i+1, j+1
print(encodageFinal)
# Sépare la chaine en paquet de 5
chFinale, k = "", 0
for n in encodageFinal:
if k % 5 == 0:
chFinale += ' '
chFinale += n
k += 1
print(chFinale)
# écriture de l'encodage dans un fichier:
fd = open(nomDuFichier, 'w')
fd.write(chFinale)
fd.close()
if __name__ == '__main__':
encodage('che') |
Partager