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

Bibliothèques tierces Python Discussion :

Utilisation de pycrypto


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut Utilisation de pycrypto
    Bonjour,

    J'utilise l'API pycrypto pour faire du chiffrement AES, mais en simulant mon code ca me marque cela est-ce un beug ou un problème de codage, merci

    Voila la console

    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
     
    Total time  ciphered XOR in seconds: 7.8e-05
    Total time deciphered XOR in seconds: 0.000116
    Traceback (most recent call last):
      File "add_many_logentries.py", line 66, in <module>
        encrypted = cipher.encrypt('Secret Message A')
      File "add_many_logentries.py", line 28, in encrypt
        iv = Random.new().read( AES.block_size )
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/__init__.py", line 33, in new
        return _UserFriendlyRNG.new(*args, **kwargs)
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 221, in new
        return RNGFile(_get_singleton())
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 215, in _get_singleton
        _singleton = _LockingUserFriendlyRNG()
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 159, in __init__
        _UserFriendlyRNG.__init__(self)
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/_UserFriendlyRNG.py", line 85, in __init__
        self._fa = FortunaAccumulator.FortunaAccumulator()
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 119, in __init__
        self.generator = FortunaGenerator.AESGenerator()
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 66, in __init__
        self.counter = Counter.new(nbits=self.block_size*8, initial_value=0, little_endian=True)
      File "/usr/local/lib/python2.7/dist-packages/Crypto/Util/Counter.py", line 112, in new
        return _counter._newLE(bstr(prefix), bstr(suffix), initval, allow_wraparound=allow_wraparound, disable_shortcut=disable_shortcut)
    TypeError: function takes at most 4 arguments (5 given)
    Et voila le code en question :

    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
     
    #!/usr/bin/env python2
    # -*- coding: utf-8 -*-
     
    """
    Scripts to insert several data entries
    """
     
    import urllib2, time
    import entry
    import hashlib
    import base64
     
    from Crypto import Random
    from Crypto.Cipher import AES
     
    BS = 16
    pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
    unpad = lambda s : s[0:-ord(s[-1])]
     
     
    class AESCipher:
     
        def __init__( self, key ):
            self.key = key
     
        def encrypt( self, raw ):
            raw = pad(raw)
            iv = Random.new().read( AES.block_size )
            cipher = AES.new( self.key, AES.MODE_CBC, iv )
            return base64.b64encode( iv + cipher.encrypt( raw ) )
     
        def decrypt( self, enc ):
            enc = base64.b64decode(enc)
            iv = enc[:16]
            cipher = AES.new(self.key, AES.MODE_CBC, iv )
            return unpad(cipher.decrypt( enc[16:] ))
     
     
    from Crypto.Hash import *
     
    base_url = 'http://127.0.0.1:8080/'
    #base_url = 'http://alliantech3.appspot.com/'
     
    try:
        urllib2.urlopen(base_url+'auth/install')
    except urllib2.HTTPError:
        print "Already installed"
     
    for i in range(1):
     
        t1 = time.clock()
     
        cyphered_data1 = entry.xor_crypt_string("d0efc09c8ddbc06c8cbbd25e", encode=True)
       # cyphered_data2 = entry.xor_crypt_string("c06c8cbbd34f", encode=True)
        #cyphered_data3 = entry.xor_crypt_string("d34f", encode=True)                              
        #response = urllib2.urlopen(base_url+'data/add?device=FE78&time=%d&data=%s&duplicate=false&signal=30.5&station=here' % (time.time() - 1e2*i, cyphered_data1))
        t2 = time.clock() - t1
        print 'Total time  ciphered XOR in seconds:', t2
        t3 = time.clock()
        decyphered_data1=entry.xor_crypt_string(entry.xor_crypt_string(cyphered_data1, encode=True), decode=True)
        t4= time.clock() -t3
        print 'Total time deciphered XOR in seconds:', t4
        #######Algorithme AES 128 bits ##############"
     
        cipher = AESCipher('mysecretpassword')
        encrypted = cipher.encrypt('Secret Message A')
        #decrypted = cipher.decrypt(encrypted)
        print encrypted
       # print decrypted
        print cipher

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 748
    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 748
    Par défaut
    Salut,

    Citation Envoyé par stroke599 Voir le message
    J'utilise l'API pycrypto pour faire du chiffrement AES, mais en simulant mon code ca me marque cela est-ce un beug ou un problème de codage, merci
    Vous pourriez répondre vous même à cette question en remarquant que c'est à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           iv = Random.new().read( AES.block_size )
    que votre code plante.
    Comme il n'y a pas beaucoup de code à vous là dedans, vous pouvez lancer la console Python et vérifier si ces instructions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    >>> from Crypto import Random
    >>> Random.new().read(16)
    >>>
    plantent où pas.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut
    Bonjour,

    Les deux lignes de python plantent que dois je faire?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 748
    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 748
    Par défaut
    Citation Envoyé par stroke599 Voir le message
    Les deux lignes de python plantent que dois je faire?
    Le problème vient de pycrypto.
    Vous pouvez commencer par désinstaller/réinstaller la bibliothèque ou la mettre à jour.
    Si le problème persiste, il faut voir avez les développeurs de la bibliothèque.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre chevronné
    Profil pro
    Ingénieur sécurité
    Inscrit en
    Février 2007
    Messages
    574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur sécurité
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2007
    Messages : 574
    Par défaut
    Alternativement, utiliser l'OS directement pour recuperer ton IV aleatoire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import os
    iv = os.urandom(16)
    Je te deconseilles d'utiliser pycrypto, qui n'est plus maintenu. Une bonne alternative est pycryptodome qui conserve la meme interface.

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2014
    Messages : 14
    Par défaut
    Non mais c'est bon j'ai reglé tout ca merci encore

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

Discussions similaires

  1. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  2. Réponses: 4
    Dernier message: 05/06/2002, 14h35
  3. utilisation du meta type ANY
    Par Anonymous dans le forum CORBA
    Réponses: 1
    Dernier message: 15/04/2002, 12h36
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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