IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Cryptographie avec Python


Sujet :

Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 0
    Points
    0
    Par défaut Cryptographie avec Python
    Bonjour,

    j'essaye d'instaurer un chiffrement de substitution mono alphabétique dans un projet Python. On l’appelle système du dictionnaire il me semble.

    Dans mon code :

    - Je vais chercher mon code chiffré dans le txt ( ex : 254, 248, 10, 145...) et j'en fais une liste ( Je ne sais pas si c'est nécessaire )
    - Je vais chercher le texte clé pour déchiffrer ce code (ex : Il fais beau Aujourd'hui)
    - Je fais les modifications (ex : lfaitbeauaujourdhui)
    - Je place les lettres en tant que "clé" dans un dictionnaire et leurs emplacements dans le texte en tant que "valeurs"

    Maintenant, j'aimerais comparer les valeurs dans le dictionnaire, au code chiffré qui est une liste.
    Et tout simplement retourner les Lettres si leurs valeur est présentes dans le dictionnaire.

    (Dict = A:123, B = 435...

    Code = 324, 123, 567...

    Retourner la lettre A)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
        import sys
        import string
     
     
     
     
        def Display():
     
        #CRYPTOGRAMME
        chiffre_source = open ("chiffre1.txt", "r")
        Chiffre = contenu_source = chiffre_source.read()
        print ("Le chiffre à décrypter est : ", Chiffre)
        print ("\n")
        input('Appuyez sur Entrer pour continuer')
        print ("\n")
     
        #Nombres du CRYPTOGRAMME introduis dans la liste
        results = []
        with open ('chiffre1.txt') as inputfile:
        for line in inputfile:
        results.append(line.strip().split(','))
     
        #Texte Clé
        cle_source = open ("cle1.txt","r")
        Texte = contenu_source = cle_source.read()
        print ("Le Texte est : ", Texte)
        print ("\n")
        input('Appuyez sur Entrer pour continuer')
        print ("\n")
     
        #Supprimer la ponctuation et les lettres accentuées
        for i in range (0,1):
        Texte = Texte.replace(' ', '')
        punct = set(string.punctuation)
        Texte = ''.join(x for x in Texte if x not in punct)
        Texte = Texte.replace('à', '')
        Texte = Texte.replace('â', '')
        Texte = Texte.replace('ç', '')
        Texte = Texte.replace('è', '')
        Texte = Texte.replace('é', '')
        Texte = Texte.replace('ê', '')
        Texte = Texte.replace('î', '')
        Texte = Texte.replace('ô', '')
        Texte = Texte.replace('ù', '')
        Texte = Texte.replace('û', '')
     
        print ("La clé du Texte est : ",Texte)
        print ("\n")
        input('Appuyez sur Entrer pour continuer')
        print ("\n")
        Dictionnaire = {'A':[], 'B':[], 'C':[], 'D':[], 'E':[], 'F':[], 'G':[], 'H':[], 'I':[],
        'J':[], 'K':[], 'L':[], 'M':[], 'N':[], 'O':[], 'P':[], 'Q':[], 'R':[],
        'S':[], 'T':[], 'U':[], 'V':[], 'W':[], 'X':[], 'Y':[], 'Z':[]}
     
     
        #Si les lettre sont présentes dans le Texte, placer leurs emplacements dans le Dictionnaire
        for i, c in enumerate(Texte):
        if "a" == c:
        Dictionnaire['A'].append(i)
        if "b" == c:
        Dictionnaire['B'].append(i)
        if "c" == c:
        Dictionnaire['C'].append(i)
        if "d" == c:
        Dictionnaire['D'].append(i)
        if "e" == c:
        Dictionnaire['E'].append(i)
        if "f" == c:
        Dictionnaire['F'].append(i)
        if "g" == c:
        Dictionnaire['G'].append(i)
        if "h" == c:
        Dictionnaire['H'].append(i)
        if "i" == c:
        Dictionnaire['I'].append(i)
        if "j" == c:
        Dictionnaire['J'].append(i)
        if "k" == c:
        Dictionnaire['K'].append(i)
        if "l" == c:
        Dictionnaire['L'].append(i)
        if "m" == c:
        Dictionnaire['M'].append(i)
        if "n" == c:
        Dictionnaire['N'].append(i)
        if "o" == c:
        Dictionnaire['O'].append(i)
        if "p" == c:
        Dictionnaire['P'].append(i)
        if "q" == c:
        Dictionnaire['Q'].append(i)
        if "r" == c:
        Dictionnaire['R'].append(i)
        if "s" == c:
        Dictionnaire['S'].append(i)
        if "t" == c:
        Dictionnaire['T'].append(i)
        if "u" == c:
        Dictionnaire['U'].append(i)
        if "v" == c:
        Dictionnaire['V'].append(i)
        if "w" == c:
        Dictionnaire['W'].append(i)
        if "x" == c:
        Dictionnaire['X'].append(i)
        if "y" == c:
        Dictionnaire['Y'].append(i)
        if "z" == c:
        Dictionnaire['Z'].append(i)
     
     
     
     
        print ("Voici les caractères présents dans le Texte et leurs emplacements : ")
        print ("\n")
     
     
        #Afficher les lettres présentes le Texte par odre alphabétique, ainsi que leurs emplacements dans le Texte
        for key, values in sorted (Dictionnaire.items()):
        for i in results:
        if values == values:
        print (key, values)
        print ("\n")
     
        input('Appuyez sur Entrer pour continuer')
        print ("\n")
     
     
        Display()

  2. #2
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Il y a une question ?
    Pas d'aide par mp.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 0
    Points
    0
    Par défaut
    " Maintenant, j'aimerais comparer les valeurs dans le dictionnaire, au code chiffré qui est une liste.
    Et tout simplement retourner les Lettres si leurs valeur est présentes dans le dictionnaire."

  4. #4
    Membre chevronné
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 608
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 608
    Points : 2 072
    Points
    2 072
    Par défaut
    Y a-t-il moyen d'avoir le fichier texte pour faire tourner le programme ?
    Pas d'aide par mp.

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    tu te complique inutilement la tâche
    pour la clé par exemple, tu peux simplement "conserver uniquement les lettres" dans une chaine key, key[817] ou key[522] donnera la correspondance voulue ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> cipher = [int(i) for i in open('chiffre1.txt', 'r').read().replace(',', '').split()]
    >>> key = ''.join([ i.lower() for i in open('cle1.txt', 'r').read() if i.lower() in 'abcdefghijklmnopqrstuvwxyz' ])
    >>> plain = ''.join([ key[i] for i in cipher ])

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 16
    Points : 0
    Points
    0
    Par défaut
    J'obtiens une citation d'Aristote, j'en conclus que c'est bel est bien le code décrypté. Je te remercie et oui effectivement je me suis compliquer EXTRÊMEMENT la tache. Je te remercie pour ton aide je vais personnaliser ce joli code.

Discussions similaires

  1. création de base mySQL avec python
    Par preacher_man dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 23/06/2006, 19h38
  2. Manipuler un fichier excel avec python
    Par dipajero dans le forum Général Python
    Réponses: 4
    Dernier message: 09/02/2006, 23h14
  3. cmt se connecté a oracle pour faire une requete avec python
    Par dipajero dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 28/12/2005, 20h22
  4. Réponses: 2
    Dernier message: 19/12/2005, 13h15
  5. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo