python pycrypto: объект модуля не имеет атрибута importKey

В настоящее время я работаю с pycrypto и хочу импортировать открытый ключ, но он не работает и вызывает ошибку: объект 'module' не имеет атрибута 'importKey''
Я также использую pycrypto в моем другом скрипте работает хорошо, поэтому я не могу понять, почему это не может работать.
мой код, который не может работать, выглядит следующим образом:

    from Crypto.PublicKey import RSA
    .............
    .............
    def task_name(task):
        username = task['user']
        taskintid = task['taskintid']
        data = '%s,%s' % (str(username), str(taskintid))
        user_id = task.get('op_user_id', '')
        db = get_db()

        ssh_key = db.ssh_key.find_one({'user_id': user_id})
        if ssh_key:
            try:
                public_key = RSA.importKey(ssh_key.get('ssh_key', ''))
                data = public_key.encrypt(data, 32)[0].encode('hex')
            except Exception, e:
                print e

    return "task-%s-%s" % (data, task['repeat_num'])

кроме того, моя версия Python - 2.6.5
============================= =========
извините, я забыл об этом, версия pycrypto 2.0.1
, потому что я установил много пакетов, поэтому я не могу обновить свой криптографическая версия


person 土豆丫    schedule 22.04.2015    source источник
comment
мой скрипт похож на документ, разница в том, что он получает ключ из файла, но я получаю ключ из базы данных   -  person 土豆丫    schedule 23.04.2015
comment
проблема именно в вашей версии   -  person Padraic Cunningham    schedule 23.04.2015


Ответы (2)


Поддержка экспорта и импорта ключей RSA была реализована в версии 2.2 и указана в журнале изменений. если вы не можете обновить, вам не повезло.

person Padraic Cunningham    schedule 23.04.2015
comment
есть ли другой модуль, который может заменить pycrypto? - person 土豆丫; 24.04.2015
comment
почему нельзя обновить? - person Padraic Cunningham; 24.04.2015
comment
потому что слишком много других пакетов, и если я обновлю pycrypto, он обновит свою зависимость, поэтому другой модуль не сможет работать. но все равно спасибо за ваш ответ, вы правы. - person 土豆丫; 29.04.2015
comment
Если вы используете virtualenv, вы можете установить последнюю версию PyCrypto только для своего приложения. - person SquareRootOfTwentyThree; 01.05.2015

Я решил эту проблему pip install pycryptodome

person Cluas    schedule 30.10.2018