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 :

[PyCrypto] RSA keys


Sujet :

Python

  1. #1
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut [PyCrypto] RSA keys
    Bonjour,

    En lisant la doc de PyCrypto j'ai ce code pour générer une clef rsa

    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    from __future__ import print_function
    from Crypto.PublicKey import RSA
     
    key = RSA.generate(2048)
    print(key.publickey().exportKey("PEM"))
    print(key.exportKey("PEM"))

    Cependant quand je l'execute avec python2 j'obtiens

    Code RSA Keys : 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
    -----BEGIN PUBLIC KEY-----
    MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAkOt1pf068fGFe/MwlocJ
    XzfVeDsALL/TWe88bCrwG/cp8dFQStKq+QYc1iMuWIRfM75JovAK+kwy0tHmmsPv
    DeXC5phAVU3bzasvhWPjT+kJ3ViKxq6NAdDA9tbwVW6fs3RzSEnpnAkkSndxeDEj
    ZMwu1vw6wz60TomUU3xRieZItilfVNa/B3XSJ2D6NhQdgpwe/Bh+Jh/PaaetN0Yd
    dnOJC0CRZqRdlWCxntOTQUq9S8q/DtOdviPrudeGaRpF8KJznjPe4u5jG2YJ/+kn
    He+wxTVt0WIXHQNm/sqkeNoIkqqS44fA+3/2q6UqnxD+GFDUE2AxMPzEwrbgklqS
    FwIDAQAB
    -----END PUBLIC KEY-----
    -----BEGIN RSA PRIVATE KEY-----
    MIIEogIBAAKCAQEAkOt1pf068fGFe/MwlocJXzfVeDsALL/TWe88bCrwG/cp8dFQ
    StKq+QYc1iMuWIRfM75JovAK+kwy0tHmmsPvDeXC5phAVU3bzasvhWPjT+kJ3ViK
    xq6NAdDA9tbwVW6fs3RzSEnpnAkkSndxeDEjZMwu1vw6wz60TomUU3xRieZItilf
    VNa/B3XSJ2D6NhQdgpwe/Bh+Jh/PaaetN0YddnOJC0CRZqRdlWCxntOTQUq9S8q/
    DtOdviPrudeGaRpF8KJznjPe4u5jG2YJ/+knHe+wxTVt0WIXHQNm/sqkeNoIkqqS
    44fA+3/2q6UqnxD+GFDUE2AxMPzEwrbgklqSFwIDAQABAoIBABT53+eMxdFrUhTk
    2G2RUiv0GvPyJk5T3bWwySAm/uYtWmbkEykhYRn2ZoogQX8See01Z9crw4sDKIAX
    XbedEKcEULer5fPy9xPH6XL3SFmys3jUbhHgBgzzOFsCNXtILdl9y4n1GNk7AYO9
    0jDBfAwE+eqoS6EjHFoZ09xZrDu3X5QecDUrxCcTNYYW66/uqHnaNnVEwWxfAnL5
    lTiN6KxY14iZgoVOiGtqPG1FTSmbb4lBcVBy1IdBobkpi91T4KWDKEz7PLo7FP7X
    9zIDZZpKKe82GY/wgw71BEK3AL7OGeQp5NXpPxg0J0AAulfbC9dIZu5PiHCOjN6c
    nlthjeECgYEAuLx1of9pWF9CizTDSEB09wFtIaXmQAjcGsQXzOiex7zgP/+WihdP
    ik9fREd1gGDMuoN3SuYYfniGfbEqHAQ339/dYj0i5eIrUoq1+WCWXS079xzZ8+7X
    A1PNf5L2rvrZu8HzreAHUl1LGJWgaVdD3aOJJ87vslwsJfrOoumdWY8CgYEAyNLy
    uAAz4fcukLIM/wL/e8UsLK+nIdr47dwhD80H6mrJNXfM62/nQ8+tH6GyiCN1Skef
    +VELu720EpR9kRHu0D/XNVKBdoHtdJTfLvTbTNYZWk1NQo9rvspzL5eRJ0L8BG27
    PVIj1s2dwRj83YwYYAdr6S9gf7FF6/yZkv4TKvkCgYAc4PEuquPH+dRIOK5SbCkc
    t+9cdDfDSN9Hm+HwmWjA5qjTuFvLKIu5nmDRJq6arAc1HPoYDlJD6wlzOq/Pg2VM
    rQ1Jny8Gas3E8IQ0AMJgvIKERdFYjby0+3PDfrDrd7Fz5YT3aG8clBL6O+HAtfCZ
    BEibnYDhDAGmykdlNknvxwKBgCIp6MquliTx1QUelSFo1CetIlezxh33T3O/iAxV
    F+ykH/itmbnPvqsFkHEaI/IO/iwVxTw3smRM4G5svnPIdjUNN0JF9+o+LjQwA0vM
    seX/Yi6/ic4x8eVyMWg+Q55HQfJK7JiA+cHYFuc7pgDWjWsAuDXiLmtqr/d2cHXW
    LVKZAoGAL4gQgaFQyCpkgeBGu+zTyKymuYfoiEj0k1Yawcya7+l1wU+m/msxsKWh
    hJILQ81TiRgPznK7TOJMVfQDrdU7YjXLouiiYWV1+jEeKzalMUmGedCC2uvCA41x
    LICknPQ0HgDYow3/aISw411oMLMVBZbA0a44m1CpAK3aX9G/JOY=
    -----END RSA PRIVATE KEY-----
    et python3 ça rajoute des char "b ' \n"

    Code RSA Keys : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    b'-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAok2nJ4Szdwex61Z9unKm\nNvW6Wog44GfbraLtJ2joEnw74jhSjQfg7IiDzVwq4uCSleuQdisZavyM1I2yt11W\nEeTDLHrKjnos1G9ob6kNEglci4xYA+TRoETmNUqGM5+IhgiKj6Nph2ZJbQU/QWx8\nyGm0Lx2ofZSTXVlq5rjfg6JG54xyilyoHvXs7gNEufz3H74ZtQ68hzxrPuptGFD8\nLiPPB7Z5EqS1Hh7vSEa2XfZFuucs3pMh04916pmbmelmzdYz4QxeIpJi5dn3zJGr\nqeCQ+9vBSVqMxOjkVlwfD4CDyKt7x5/IORi2RuKLati9Dlns77aJ+8AtJvcuaf5S\nvQIDAQAB\n-----END PUBLIC KEY-----'
    b'-----BEGIN RSA PRIVATE KEY-----\nMIIEpgIBAAKCAQEAok2nJ4Szdwex61Z9unKmNvW6Wog44GfbraLtJ2joEnw74jhS\njQfg7IiDzVwq4uCSleuQdisZavyM1I2yt11WEeTDLHrKjnos1G9ob6kNEglci4xY\nA+TRoETmNUqGM5+IhgiKj6Nph2ZJbQU/QWx8yGm0Lx2ofZSTXVlq5rjfg6JG54xy\nilyoHvXs7gNEufz3H74ZtQ68hzxrPuptGFD8LiPPB7Z5EqS1Hh7vSEa2XfZFuucs\n3pMh04916pmbmelmzdYz4QxeIpJi5dn3zJGrqeCQ+9vBSVqMxOjkVlwfD4CDyKt7\nx5/IORi2RuKLati9Dlns77aJ+8AtJvcuaf5SvQIDAQABAoIBAQCVC+qtB9gnPxHM\npKjhR9gMMKzp5p8UtUuvsSdIQbadAymbHU3x5YJQtS0UscdQghsbQjBv1DSLY1GR\nAG9WpIgd9o6lkj3hiaERlR27LOur3Jz4KfHJ4aAAJkWiOsXzMlYVgFJ+hfqrNOvJ\nCkCEvDP7d9bYTcwlRwPtfegF6VCZeD5wVsPcowgnUqBUPQ9Fd5DgKI2jzzUVO+zV\nvVAD8jF/g3dEeghqmWSHPhMGZhPKpUtZJBHi84YWuRUGROld9p2Tvab0D9DFU6Nh\nHaW3kw1s1XO7W37I10GJkNzLdALRNmhhEt2DkOZsEyLAlF6L9L9rIWXk1HMvZn9j\ns530yaoBAoGBAMpE2DM299nMc/U1kZYeDSA82NNeRhjAjCX1xtksaKfeoURdFY3C\nAt7N0D0U4/Ein6YFCNVvjrNnPKgKOHEREOvwXePRgXaiKI6iN69wMGdAnChOIBch\n1zHb8HS41PLJKYBmdrByleK++m2PmVw4buo93sC3fuWNWAlq60xh/BdRAoGBAM1q\n+f0osS49bpKXWFDHzh+s62jKsynmQ15+fL5IQLalpnKKS6fiRLzSw3CbnKT4IGPk\n5ifDYtt5+Pxc4iM0wpWRXhCfl627iXkdR2Vu9N0Zhmw21s+Io+BvrlPucgxeDYmy\nvTA8Gidet+VV5g/Ja4K172CZBRM/TbRHwbFVh0GtAoGBAIzVGG+4YyQLneVqsf6C\n2ALNOu8YodfUIQDBOv21VP0lHsYZxcsY/aSiSs5swDUCNYSD1t29Oe+h/vLFgvz+\ns/iDOOxJ0EmIqJJ/UiReCeWqb9AEbYWNs2bsy2SJ2QNemv3i2dsLPV9ON9GW/WHf\njSKdh35JhRpRqq2L+18IjlyxAoGBAJdqZ2NIf3IKLls33A2Peky29b+EypPz+2zH\n58OLFsiLSinb7vCNRQW6hf2XdtvTWmzH6S8eQtxtCC9deANjfJsrUB8IxJF3T1pL\nTrliFHR1wDQ8KBNKMSHasLGFbePX4DrD2diYNN8YXo1Zx/+TBQCQgya9JJSPcQOW\ncRv6Y3zxAoGBAJGw/2KV31d94HnXIgpOYkDmKVq3q0JVdMQ0r0+sksMHQYZJKkAb\nFa144UCrIuPkGk4fMnVTGYxNcPYGiwvHLgNTn1Pmh5rlWyyMP9nNdfHeOejLq2Bz\nWx4kC6B8gK/gxhdQ8SIikb8iNhF9aTA3o/PKR4PMCUifckhPwbiWgtYg\n-----END RSA PRIVATE KEY-----'

    Comment palier a ce probleme? c'est problématique pour la suite du programme écrit en P3
    J'ai essayé de convertir la sortie en string puis utiliser str.replace() sans succes

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par bonjourajax Voir le message
    Comment palier a ce probleme? c'est problématique pour la suite du programme écrit en P3
    J'ai essayé de convertir la sortie en string puis utiliser str.replace() sans succes
    Vous ne pouvez pas pallier: il faut apprendre à faire avec... Et donc commencer par décrire quels traitements posent problème.
    S'il s'agit de replace, çà fonctionne pourvu que les types soient homogènes (que des bytes ou que des str):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> b'aaabccc'.replace(b'b', b'XXX')
    b'aaaXXXccc'
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Merci pour votre réponse
    Effectivement ca marche comme ca mis à part que les clefs ne sont plus formatées et ne font plus la même taille de caracteres (et ont toujours un b' ...texte... ' chez p3)
    je test avec la suite et je vous tiens au courant, voici les résultats actuels:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    print (len(public_key.replace(b'\n', b'')))
    print (len(private_key.replace(b'\n', b'')))
    Code python2.7 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    len(public_key)
    450
     
    len(private_key) :
    1678

    Code python3.6 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    len(public_key) :
    442
     
    len(private_key) :
    1652

    - B

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2018
    Messages
    537
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Avril 2018
    Messages : 537
    Points : 634
    Points
    634
    Par défaut
    Ce qui pose probleme c'est que je souhaite encrypter la clef, j'ai récupéré la méthode RSAKey.from_private_key_file pour être sur que ma clef soit correcte

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    import paramiko
    from Crypto.PublicKey import RSA
    from Crypto.Cipher import PKCS1_OAEP
     
    # Clef prive
    private_key = paramiko.RSAKey.from_private_key_file("prive.pem")
    key = RSA.importKey(private_key)
    key = PKCS1_OAEP.new(key)
    Même si j'enleve manuellement le b et les quotes
    paramiko.ssh_exception.SSHException: not a valid RSA private key file
    Il y a que celle récupérée par python2 qui est acceptée

    - B

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

Discussions similaires

  1. Easy-RSA :: générer ses CSR/KEY/CRT automatiquement ?
    Par Hyt3k dans le forum Sécurité
    Réponses: 1
    Dernier message: 28/05/2015, 15h33
  2. KEY RSA connexion SSH
    Par jad_jad dans le forum Réseau
    Réponses: 2
    Dernier message: 04/11/2009, 19h17
  3. Déclenchement Programme sur Virtual Key
    Par Tom-G dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 09/05/2003, 12h58
  4. Virtual-key code
    Par lyrau dans le forum Windows
    Réponses: 2
    Dernier message: 29/03/2003, 19h22
  5. cherche algos encryption en RSA et ELGAMAL
    Par Vermin dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 04/11/2002, 08h58

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