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
- \R python ✓ - Forum Python
- Hote de service service de chiffrement - Forum Windows 10
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