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 :

Retrouver la chaine Base64 depuis un entier ? [Python 3.X]


Sujet :

Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut Retrouver la chaine Base64 depuis un entier ?
    Dans une appli de cryptage RSA je dois convertir une chaine de caractères en base64 ce qui est relativement simple

    exemple : b'MTU2MCwxMDAwLDAsMjAwMCwwLDEwMDAsMCwyMTAsMTU2MCwyMDE3MTAwNjE0MDMxNiwwMDAwMDc4NjA4LFRLLE8sCg=='

    Cette chaîne est transformée en entier stockée sous forme de str :"2325212423287516048910859015030301426300980055684777911441445054964357651153904316657540366759613595477359609426068541972702699804469974341875692236246653994829344952216175011523396982605524616074992008423371891879748467303464231"

    Mais je n'arrive pas à reconstituer la chaîne d'origine même si je reconvertis la str en entier !!!

    Si quelqu'un a la solution ???

  2. #2
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Il y a un module fait pour ça -> ICI.

    Ne suffit-il pas ? Si non, merci de préciser ce que vous avez tenté...
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Oui , merci

    C'est bien le module que j'utilise pour coder en base64 le texte d'origine. :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    encode=base64.b64encode(bytes(B, 'utf-8'))
    encode =  b'MTU2MCwxMDAwLDAsMjAwMCwwLDEwMDAsMCwyMTAsMTU2MCwyMDE3MTAwNjE0MDMxNiwwMDAwMDc4NjA4LFRLLE8sCg=='
    M=int(encode)
    print ("M = ",M)
    M =  2325212423287516048910859015030301426300980055684777911441445054964357651153904316657540366759613595477359609426068541972702699804469974341875692236246653994829344952216175011523396982605524616074992008423371891879748467303464231

    Le problème vient du fait que je dois transformer le résultat base64 en entier pour appliquer le cryptage rsa, ce qui fonctionne très bien.

    Mais je n'arrive pas à re-transformer l'entier en base64.

  4. #4
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    En utilisant le module struct ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    struct.pack('I', variable).encode('base64')
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Ca n'apporte rien de plus....

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 823
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 823
    Points : 7 119
    Points
    7 119
    Par défaut
    Bah en même temps c'est pas simple de comprendre, ton code est ultra incohérent... D'où vient la variable b, d'où vient la variable B ? La variable encode n'est pas utilisée, pourquoi là présenter ?
    Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
    La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)

  7. #7
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Quelle est la règle de conversion utilisée pour passer d'une chaine de caractères ASCII en chaine de chiffres?
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par fred1599 Voir le message
    Bah en même temps c'est pas simple de comprendre, ton code est ultra incohérent... D'où vient la variable b, d'où vient la variable B ? La variable encode n'est pas utilisée, pourquoi là présenter ?
    La variable B est la chaine d'origine (en clair) qui doit être d'abord cryptée en base64

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    B =  1560,1000,0,2000,0,1000,0,210,1560,20171006140316,0000078608,TK,O,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    encode=base64.b64encode(bytes(B, 'utf-8'))
    encode =  b'MTU2MCwxMDAwLDAsMjAwMCwwLDEwMDAsMCwyMTAsMTU2MCwyMDE3MTAwNjE0MDMxNiwwMDAwMDc4NjA4LFRLLE8sCg=='
    M=int(encode)
    print ("M = ",M)
    M =  2325212423287516048910859015030301426300980055684777911441445054964357651153904316657540366759613595477359609426068541972702699804469974341875692236246653994829344952216175011523396982605524616074992008423371891879748467303464231

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Quelle est la règle de conversion utilisée pour passer d'une chaine de caractères ASCII en chaine de chiffres?
    C'est simplement la fonction "int"

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def base_256(M):
        "conversion d'une chaine de caractère en entier"
        x = 0
        base = 2**8
        for l in m:
            "chaque caractère ascii est codé sur un octet : base 2**8"
            x = base*x +ord(l)
        return x

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par Giancarlu Voir le message
    C'est simplement la fonction "int"
    Si vous voulez de l'aide, il faudrait commencer par vérifier que le code que vous postez illustre effectivement ce que vous faites.
    Car:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    >>> int(b'abc')
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ValueError: invalid literal for int() with base 10: b'abc'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Septembre 2017
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2017
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    Je crois que j'ai trouvé la solution.
    Au lieu de crypter en base64 puis effectuer le cryptage RSA je fais l'inverse.

    Je crypte d'abord en RSA et puis je transforme le résultat en Base64.
    Ce qui fait que je récupère les valeurs Ascii directement après le décrypage base64 pour reconstituer le texte d'origine.

    Merci à vous tous, vos réponses m'ont aidé à revoir ma logique qui n'était pas la bonne.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Retrouver la chaine originale à partir d'une chaine md5
    Par othmane126 dans le forum Langage
    Réponses: 6
    Dernier message: 14/05/2008, 13h45
  2. Réponses: 4
    Dernier message: 03/10/2006, 23h16
  3. [debutant] Concatenation d'une chaine (string) et d'entiers
    Par websurfeur dans le forum Débuter
    Réponses: 2
    Dernier message: 26/03/2006, 11h05
  4. [VB]Convertir une chaine de caractere en entier
    Par budylove dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/02/2006, 11h06
  5. Transfomer une Chaine de Caractere en Entier
    Par ThanosT dans le forum C
    Réponses: 14
    Dernier message: 05/10/2005, 19h56

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