Encodage, decodage de Vigenere
Chizqiyah
-
khrug -
khrug -
Bonjour, j'essaies d'encoder un fichier txt et de créer un fichier différent qui affiche ce que j'ai coder en utilisant le principe de Vigenere. J'ai un problème à partir de def encodage_fichier():
Voici mon code
Voici mon code
# -*- coding: utf-8 -*-
ALPHABET = {
"a": 0,
"b": 1,
"c": 2,
"d": 3,
"e": 4,
"f": 5,
"g": 6,
"h": 7,
"i": 8,
"j": 9,
"k": 10,
"l": 11,
"m": 12,
"n": 13,
"o": 14,
"p": 15,
"q": 16,
"r": 17,
"s": 18,
"t": 19,
"u": 20,
"v": 21,
"w": 22,
"x": 23,
"y": 24,
"z": 25,
" ": 26,
"'": 27
}
ALPHABET_INVERSE = {v: k for k, v in ALPHABET.items()}
LONGUEUR_ALPHABET = len(ALPHABET)
def encodage(phrase, cle):
encodage = []
for i in range(len(phrase)):
x = (ALPHABET[phrase[i]] + ALPHABET[cle[i % len(cle)]]) % LONGUEUR_ALPHABET
encodage.append(ALPHABET_INVERSE[x])
return ("" . join(encodage))
def decodage(phrase_encodee, cle):
decodage = []
for i in range(len(phrase_encodee)):
x = (ALPHABET[phrase_encodee[i]] - ALPHABET[cle[i % len(cle)]]) % LONGUEUR_ALPHABET
decodage.append(ALPHABET_INVERSE[x])
return ("" . join(decodage))
def encodage_usager():
veut_continuer = True
while veut_continuer:
phrase = input("Quelle phrase souhaitez-vous encoder ?\n")
cle = input("Quelle clé souhaitez-vous utiliser ?\n")
phrase_encodee = encodage(phrase, cle)
print("La phrase encodée est : \n{}".format(phrase_encodee))
touche_entree = input("Si vous désirez quitter, entrez 0, sinon entrez n'importe quelle autre touche.\n")
veut_continuer = touche_entree != '0'
def decodage_usager():
veut_continuer = True
while veut_continuer:
phrase = input("Quelle phrase souhaitez-vous décoder ?\n")
cle = input("Quelle clé souhaitez-vous utiliser ?\n")
phrase_decodee = decodage(phrase, cle)
print("La phrase décodée est : \n{}".format(phrase_decodee))
touche_entree = input("Si vous désirez quitter, entrez 0, sinon entrez n'importe quelle autre touche.\n")
veut_continuer = touche_entree != '0'
def encodage_fichier():
#Ouverture des fichiers à lire et à écrire
# Ouverture du fichier1 et sa lecture
fichier1 = open("encodage_a_faire.txt", "r")
fichier1.read()
# Séparer les mots du fichier1 en utilisant comme référence la virgule afin d'avoir les phrases
# à encoder et leurs clés dans des listes (phrase, cle).
fichier1.split(",")
# Ouverture du fichier2 et son écriture
fichier2 = open("encodage_fini.txt", "w")
fichier2.writelines(encodage(fichier1[0], fichier1[1]))
# Fermeture des fichiers
fichier1.close()
fichier2.close()
# pass
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Chiffrement de vigenère python
- Citizen code python avis - Accueil - Outils
- Mot secret python pix ✓ - Forum Python
- Combinaison de 5 chiffres allant de 1 à 18 - Forum Mail
- Afficher un message sur python "" ✓ - Forum Python
- Tous les code possible de 0 à 9 (4 chiffres ) liste - Forum Programmation
Mon programme devrait créer un fichierencoder.txt où l'encodage sera fait.
Tu peux enregistrer ces phrases suivantes dans un fichier bloc note et essayer de l'encoder en respectant les sauts de lignes et que pour chaque ligne, tu as la (phrase,cle).
bonjour,allo
quelle bonne poutine,valentine
j'aime la poutine,ashton
petit,immense