Python chiffrement RSA
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Python chiffrement RSA



  1. #1
    balto1717

    Python chiffrement RSA


    ------

    Bonjour,

    Je n'arrive pas a chiffrer un message entré par l'utilisateur mais uniquement un message déjà intégré dans le code, ca ne doit pas être très compliqué mais je débute le python

    Merci beaucoup !

    Voici mon code :

    privatekey = RSA.importKey(priv)
    publickey = RSA.importKey(pub)
    print(publickey)

    encryptor = PKCS1_OAEP.new(publickey)

    print("Entrez votre message a chiffrer : ")
    message = input() #Le message entré par l'utilisateur
    encrypted = encryptor.encrypt(b'Bonjour') #Je ne compren pas bien l'entré de cette fonction mais sans le b' ' rien ne marche
    print(encrypted)

    decryptor = PKCS1_OAEP.new(privatekey)
    decrypted = decryptor.decrypt(ast.literal_ eval(str(encrypted)))
    print(decrypted) # il m'affiche b'bonjour'

    -----

  2. #2
    polo974

    Re : Python chiffrement RSA

    en python (3) il y a une nette séparation entre les octets (bytes) et les caractères (str) qui sont codé en interne en unicode.
    >>> type(b'555')
    <class 'bytes'>
    >>> type('555')
    <class 'str'>

    ce que tu veux crypter, c'est un paquet d'octets et la fonction attend en toute logique des octets.

    mais ce que tu reçois avec input, c'est des caractères:
    >>> input()
    555
    '555'

    donc, il faut que tu encodes tes caractères en octets.
    tu peux encoder en utf-8, c'est le plus "moderne".

    >>> input().encode('utf-8')
    555
    b'555'

    et si je balance des "é":
    >>> input().encode('utf-8')
    ééé
    b'\xc3\xa9\xc3\xa9\xc3\xa9'

    et ensuite, tu balances dans ta fonction de crypto.

    plus tard, tu décryptes et tu décodes:
    >>> b'\xc3\xa9\xc3\xa9\xc3\xa9'.de code('utf-8')
    'ééé'

    attention, il faut encoder/décoder avec le même encodage...
    sinon:
    >>> input().encode('latin-1')
    ééé
    b'\xe9\xe9\xe9'
    >>> b'\xe9\xe9\xe9'.decode('utf-8')
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe9 in position 0: invalid continuation byte
    Jusqu'ici tout va bien...

  3. #3
    balto1717

    Re : Python chiffrement RSA

    merci beaucoup je comprend mieux maintenant ca marche nickel !

Discussions similaires

  1. Python - Système de chiffrement RSA
    Par henryallen dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 27/03/2019, 18h35
  2. [Python] Problème de lag de programme et essai de Timer python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 20
    Dernier message: 26/01/2018, 15h14
  3. [Python] subprocess, lancer un autre programme avec python
    Par Loupsio dans le forum Programmation et langages, Algorithmique
    Réponses: 10
    Dernier message: 30/11/2016, 18h56
  4. en python le multi tache n'est pas possible alors pourquoi les threads existent sur python?
    Par docEmmettBrown dans le forum Programmation et langages, Algorithmique
    Réponses: 5
    Dernier message: 10/06/2015, 15h47
  5. Chiffrement mod n (RSA)
    Par invite72334b6e dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 15/04/2012, 16h00