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 :

Difficult�s pour le d�cryptage d'un texte simple.


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par d�faut Difficult�s pour le d�cryptage d'un texte simple.
    Bonjour � tous, j'ai re�u un exercice sur lequel je continue de bloquer apr�s de nombreux essais, �tant un d�butant dans l'utilisation de python.
    Voici l'�nonc�:

    �crivez un programme en Python qui crypte un message, entr� au clavier par l'utilisateur, puis le stocke dans un fichier txt. On se limitera � des caract�res majuscules, sans accents ni ponctuation.
    L'utilisateur pourra choisir la cl� de cryptage, c'est � dire le nombre de caract�res al�atoires � ins�rer entre deux lettres du message.
    �crivez un autre programme capable de lire le message cod� du fichier txt et d'en extraire le message en clair, connaissant la cl�.

    Ayant r�ussi � �crire le programme cryptage, il me reste le d�cryptage. Je dois faire un programme simple, utilisant l'instruction 'for' si possible et ne d�passant pas les 10 lignes. Je pr�cise que j'utilise python 3.3.2. Pourriez-vous me guider ? Demandez-moi si vous souhaitez des pr�cisions, merci.

  2. #2
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Salut,

    Pour t'aider dans le d�cryptage, il serait bien que l'on voie le cryptage.

    Montre nous ton code de d�part, �a simplifiera les choses.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par d�faut
    import random

    def lettre():
    carac = random.randint (65,90)
    resultat = chr(carac)
    return resultat

    def message(cl�):
    resultat = ""
    for i in range (0,cl�):
    resultat = resultat + lettre()
    return resultat


    texte = input("Veuillez �crire votre texte � crypter en majuscule (sans accents ni ponctuation). ")
    cl� = int(input("Veuillez entrer la cl� de cryptage (cela doit �tre un nombre entier) " ))
    fichierSource = open("MonMessageCrypt�.txt","w")

    fichierSource.write(texte)

    for i in range(0,len(texte)):
    print(texte[i], end = message(cl�))
    fichierSource.close()

  4. #4
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Le texte que tu enregistre n'est pas encore crypt� dans ton code, je suppose que ce doit �tre le cas.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    c = ""
    for i in range(0,len(texte)):
        c = c + texte[i] + message(clé)
    fichierSource.write(c)
    fichierSource.close()
    Pour le d�coder, il te suffit donc de prendre les lettres du message cod� une par une mais en sautant � chaque fois les lettres ajout�es.

    Avec range(d�but, fin, saut) tu peux donner une valeur de saut.
    Exemple:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    >>> for i in range(0, 10, 3):
    ...     print i,
    ... 
    0 3 6 9
    Tu peux le faire en deux lignes de code.

    Si tu postes du code mets-le entre balises. Le # dans la barre d'outil.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par d�faut
    oui mais le probl�me c'est que je ne connais pas la longueur du message texte que va �crire la personne, et c'est moi qui doit lui redemander la cl�, le pas donc, ce qui fait que je ne peux pas metre seulement (0,10,3) et c'est pour cette raison que je bloque :/ en gros je dois avoir ca:
    for i in range (0, longueur du message cod�, cl� de codage)

  6. #6
    Expert confirm�

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par d�faut
    Dans mon exemple range(0, 10, 3) 10 repr�sente la longueur du message crypt� et 3 repr�sente la valeur de la cl� + 1.

    La longueur du message crypt�, tu sais comment la conna�tre puisque tu as �crit dans ton code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    for i in range(0,len(texte)):
    Essaye, tu verras que c'est simple.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    �tudiant
    Inscrit en
    Novembre 2013
    Messages
    4
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2013
    Messages : 4
    Par d�faut
    merci je crois que j'ai compris
    �a donne �a:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    clé = int(input("Veuillez entrer la clé de cryptage (cela doit être un nombre entier) " )) 
     
    Message = open("MonMessageCrypté.txt","r")
    texte = Message.read()
    Message.close()
    MessageDécrypté = open("MonMessageDécrypté.txt","w")
     
    for i in range(0,len(texte),clé+1):
        MessageDécrypté.write(texte[i])
    MessageDécrypté.close()

Discussions similaires

  1. Difficult� pour batir une requ�te simple
    Par pierre50 dans le forum Langage SQL
    R�ponses: 6
    Dernier message: 18/11/2013, 11h08
  2. Difficult� pour une requ�te a priori simple
    Par Evocatii dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 03/08/2011, 21h19
  3. R�ponses: 7
    Dernier message: 13/12/2003, 14h09
  4. R�ponses: 10
    Dernier message: 22/09/2003, 21h58
  5. Difficult�s pour afficher un pixel � l'�cran
    Par Bubonik software dans le forum C
    R�ponses: 9
    Dernier message: 17/08/2003, 12h48

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