From crypto cipher import aes выдает ошибку

WARNING: Don’t use crypto or pycrypto anymore!

As you can read on this page, the usage of pycrypto is not safe anymore:

Pycrypto is vulnerable to a heap-based buffer overflow in the ALGnew function in block_templace.c. It allows remote attackers to execute arbitrary code in the python application. It was assigned the CVE-2013-7459 number.

Pycrypto didn’t release any fix to that vulnerability and no commit was made to the project since Jun 20, 2014.

Update 2021-01-18

The CVE is fixed now (thanks @SumitBadsara for pointing it out!). You can find the current status of the open security tickets for each package at the Debian security tracker:

  • python-crypto
  • pycryptodome

Use Python3’s pycryptodome instead!

Make sure to uninstall all versions of crypto and pycrypto first, then install pycryptodome:

pip3 uninstall crypto 
pip3 uninstall pycrypto 
pip3 install pycryptodome

All of these three packages get installed to the same folder, named Crypto. Installing different packages under the same folder name can be a common source for errors!

For more information, see pycryptodome.org.

Best practice: virtual environments

In order to avoid problems with pip packages in different versions or packages that install under the same folder (i.e. pycrypto and pycryptodome) you can make use of a so called virtual environment. There, the installed pip packages can be managed for every single project individually.

To install a virtual environment and setup everything, use the following commands:

# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip

# install virtualenv
pip3 install virtualenv

# install and create a virtual environment in your target folder
mkdir target_folder
cd target_folder
python3 -m virtualenv .

# now activate your venv and install pycryptodome
source bin/activate
pip3 install pycryptodome

# check if everything worked: 
# start the interactive python console and import the Crypto module
# when there is no import error then it worked
python
>>> from Crypto.Cipher import AES
>>> exit()

# don't forget to deactivate your venv again
deactivate

For more information, see docs.python-guide.org.

Когда я пытаюсь запустить app.py(Python 3.3, PyCrypto 2.6), мой virtualenv продолжает возвращать указанную выше ошибку. Операция импорта — это просто from Crypto.Cipher import AES. Я искал дубликаты, и вы могли бы сказать, что есть некоторые, но я пробовал решения (хотя большинство из них даже не решения), и ничего не получилось.

Вы можете видеть, какие файлы для PyCrypto ниже:

4b9b3361

Ответ 1

У меня была такая же проблема (хотя на Linux). Решение было довольно простым — добавьте:

libraries:
- name: pycrypto
  version: "2.6"

в мой файл app.yaml. Поскольку в прошлом это работало правильно, я предполагаю, что это новое требование.

Ответ 2

У меня была такая же проблема на моем Mac при установке с pip. Затем я удалил pycrypto и снова установил его с помощью easy_install, например:

pip uninstall pycrypto
easy_install pycrypto

также, как сказал Люк: Если у вас возникли проблемы с запуском этих команд, обязательно запустите их как admin (sudo)

Надеюсь, это поможет!

Ответ 3

Я столкнулся с этим и на Mac, и, похоже, это связано с тем, что к сожалению, так называемый «криптовый» модуль (не уверен, для чего это) установлен рядом с пикрипто через pip.

Исправление похоже на удаление крипто и пикрипто с помощью pip:

sudo pip uninstall crypto
sudo pip uninstall pycrypto

и переустановка pycrypto:

sudo pip install pycrypto

Теперь он работает так, как ожидалось, когда я делаю что-то вроде:

from Crypto.Cipher import AES

Ответ 4

На маке… если вы столкнетесь с этим.. попробуйте посмотреть, можно ли вместо этого импортировать крипто?

Если это так.. имя пакета является проблемой C vs C. Чтобы обойти это, просто добавьте эти строки в начало вашего script.

import crypto
import sys
sys.modules['Crypto'] = crypto

Вы знаете, что сможете успешно импортировать paramiko.

Ответ 5

введите команду:

sudo pip install pycrypto

Ответ 6

Я нашел решение. Проблема, вероятно, в случае чувствительности (в Windows).

Просто измените имя папки:

  • C:\Python27\Lib\site-packages\crypto
  • to: C:\Python27\Lib\site-packages\crypto

Вот как была названа папка после установки pycrypto:
введите описание изображения здесь

Я изменил его на:
введите описание изображения здесь

И теперь следующий код работает нормально:
введите описание изображения здесь

Ответ 7

Удаление crypto и pycrypto работает на меня. Затем установите только pycrypto:

pip uninstall crypto 
pip uninstall pycrypto 
pip install pycrypto

Ответ 8

если вы используете redhat, fedora, centos:

sudo yum install pycrypto

для моего случая я не могу установить его с помощью pip

Ответ 9

У меня была та же проблема 'ImportError: No module named Crypto.Cipher', поскольку с помощью GoogleAppEngineLauncher (версия > 1.8.X) с GAE Boilerplate на OSX 10.8.5 (Mountain Lion). В SDK приложения Google App Engine с исполняемой средой python 2.7 рекомендуется использовать pyCrypto 2.6.
Решение, которое сработало для меня, было…

1) Загрузите исходный код pycrypto2.6 где-нибудь (~/Downloads/pycrypto26)

например, git clone https://github.com/dlitz/pycrypto.git

2) cd (cd ~/Downloads/pycrypto26), то

3) Выполните следующую команду терминала внутри предыдущей папки, чтобы вручную установить pyCrypto 2.6 в папку GAE.

sudo python setup.py install --install-lib /Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine

Ответ 10

Попробуйте с pip3:

sudo pip3 install pycrypto

Ответ 11

Это может быть проблема загрузки модулей python, установленных через pip. См. Этот ответ Невозможно загрузить модули Python, установленные через pip из каталога site-packages, и попробовать что-то вроде

python -m pip install pycrypto

Ответ 12

Для CentOS 7.4 я сначала установил pip, а затем pycrypto, используя pip:

> sudo yum -y install python-pip 
> sudo python -m pip install pycrypto

Ответ 13

Работал для меня (Ubuntu 17.10)

Удаление venv и создание его снова с помощью python v3.6

pip3 install PyJWT
sudo apt-get install build-essential libgmp3-dev python3-dev
pip3 install cryptography
pip3 install pycryptodome
pip3 install pycryptodomex

Pycrypto устарел, имел проблемы с ним, использовал Pycryptodome

Ответ 14

Для Windows 7:

Я прошел через эту ошибку «Ошибка модуля Crypo.Cipher import AES»

Чтобы установить Pycrypto в Windows,

Попробуйте это в командной строке,

Установить путь = C:\Python27\Scripts (путь, где находится easy_install)

Затем выполните следующее:

easy_install pycrypto

Для Ubuntu:

Попробуйте это,

Скачайте Pycrypto с » https://pypi.python.org/pypi/pycrypto»

Затем измените свой текущий путь на загруженный путь с помощью вашего терминала:

Например: root @xyz-virtual-machine: ~/pycrypto-2.6.1 #

Затем выполните следующие операции с помощью терминала:

установка python setup.py

Это сработало для меня. Надежда работает для всех.

Ответ 15

Я решаю эту проблему, изменяя регистр первой буквы на верхнюю.
Убедитесь, что » из Crypto.Cipher импортирует AES » не » из crypto.Cipher import AES ».

Ответ 16

Эта проблема может быть исправлена ​​установкой компилятора С++ (python27 или python26). Загрузите его из Microsoft https://www.microsoft.com/en-us/download/details.aspx?id=44266 и запустите команду: pip install pycrypto, чтобы запустить веб-доступ gui, когда вы убиваете процесс easy_install.exe.

Ответ 17

На сегодняшний день у меня from Crypto.Cipher import AES же проблема при импорте from Crypto.Cipher import AES даже если я установил/переустановил pycrypto несколько раз. Завершите это, потому что pip по умолчанию — python3.

~ pip --version pip 18.0 from/usr/local/lib/python3.7/site-packages/pip (python 3.7)

установка pycrypo с pip2 должна решить эту проблему.

Ответ 18

Может быть, вы должны это сделать: pycryptodome == 3.6.1 добавить его в requirements.txt и установить, что должно устранить отчет об ошибке. меня устраивает!

Ответ 19

Если вы macos, переименуйте папку lib/python3.7/site-packages/crypto в lib/python3.7/site-packages/Crypto

Ответ 20

ВНИМАНИЕ: не используйте pycrypto больше!

Как вы можете прочитать на этой странице, использование pycrypto больше не является безопасным:

Pycrypto уязвим к переполнению буфера в куче в функции ALGnew в block_templace.c. Это позволяет удалённым злоумышленникам выполнять произвольный код в приложении python. Ему был присвоен номер CVE-2013-7459.

Pycrypto не выпустила ни одного исправления этой уязвимости, и с 20 июня 2014 года в проект не было внесено никаких обязательств.

РЕШЕНИЕ: используйте Python3 и pycryptodome!

TL; DR: pip3 install pycryptodome

Настройка новой виртуальной среды

Чтобы установить виртуальную среду и все настроить, используйте следующие команды:

# install python3 and pip3
sudo apt update
sudo apt upgrade
sudo apt install python3
sudo apt install python3-pip

# install and create a virtual environment
# cd to or mkdir the folder where you want your venv
pip3 install virtualenv
python3 -m virtualenv .

# now activate your venv and install pycryptodome
source bin/activate
pip3 install pycryptodome

# check if everything worked: 
# start the interactive python console and import the Crypto module
# when there is no import error then it worked
python
>>> from Crypto.Cipher import AES
>>> exit()

# don't forget to deactivate your venv again
deactivate

Для получения дополнительной информации см. pycryptodome.org.

Ответ 21

Я с 3.7. Проблема остается после того, как я пытаюсь установить crypto. И Pycrypto просто терпит неудачу в моем случае. В итоге моя сборка прошла через пакет ниже:
pip install pycryptodome

Answer by Randy Roman

from Crypto.Cipher import AES,from crypto.Cipher import AES,When I try to run app.py (Python 3.3, PyCrypto 2.6) my virtualenv keeps returning the error listed above. My import statement is just from Crypto.Cipher import AES. I looked for duplicates and you might say that there are some, but I tried the solutions (although most are not even solutions) and nothing worked.,

Buried here is the solution that worked for me (on Windows 10)

– Joseph

May 16 ’20 at 6:01

I had the same problem on my Mac when installing with pip. I then removed pycrypto and installed it again with easy_install, like this:

pip uninstall pycrypto
easy_install pycrypto

Answer by Averie Lewis

from Crypto.Cipher import AES
ModuleNotFoundError: No module named ‘Crypto’,Yo, I have this problem now with in our Python application.
We are using Crypto. On my friends MAC it’s working. But when I open the code on WINDOWS I’m getting an error.,` from Crypto.Hash import HMAC
ModuleNotFoundError: No module named ‘Crypto’
(venv),from Crypto.PublicKey import RSA
ModuleNotFoundError: No module named ‘Crypto’
I have installed Crypto using pip, but still it shows this error

  File "scripts\Cert_5_1_01_RouterAttach.py", line 33, in <module>
    import config
  File "C:\thread\scripts\config.py", line 33, in <module>
    import message
  File "C:\thread\scripts\message.py", line 39, in <module>
    import mac802154
  File "C:\thread\scripts\mac802154.py", line 39, in <module>
    from net_crypto import AuxiliarySecurityHeader, CryptoEngine, MacCryptoMaterialCreator
  File "C:\thread\scripts\net_crypto.py", line 36, in <module>
    from Crypto.Cipher import AES
ModuleNotFoundError: No module named 'Crypto'

Answer by Katherine Bridges

Hi. I am trying to run this line in python.,But I am getting this error,It was successful but when I ran the code, I still get the same error,Machine learning tutorial

Hi. I am trying to run this line in python.

from Crypto.Cipher import AES

But I am getting this error

ModuleNotFoundError: No module named 'Crypto'

I tried installing the module using

pip install crypto

Answer by Ezra Mora

You are getting this type of error because there is collision between two modules .,i’m 99% sure u will not get this error again .,pip uninstall pycryptodome,pip install pycryptodome

You are getting this type of error because there is collision between two modules .

  File "C:\user\admin\desktop\smartcart\Paytm\Checksum.py", line 7, in <module>    from Crypto.Cipher import AES    ModuleNotFoundError: No module named 'Crypto'

Answer by Linda Owen

>> pip install pycryptodome

from Crypto.Cipher import AES  #Works

Windows XP SP4, Python 2.7

python -m pip install pycrypto succeeds after installing the compiler, but it fails to load:

>>> from Crypto.Cipher import AES
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named Crypto.Cipher
>>> from crypto.Cipher import AES
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\crypto\Cipher\AES.py", line 49, in <module
>
    from Crypto.Cipher import blockalgo
ImportError: No module named Crypto.Cipher

Notice ‘crypto’ in site-packages is lowercase? Renaming it to ‘Crypto’ seems to solve the issue.

Issue

I have AES inside the Cipher module inside Crypto (Python27\Lib\Crypto\Cipher\AES).

When I try to do

from Crypto.Cipher import AES

I get the following error:

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    from Crypto.Cipher import AES
  File "C:\Python27\lib\Crypto\Cipher\AES.py", line 50, in <module>
    from Crypto.Cipher import _AES
ImportError: cannot import name _AES

But I can import another module like

from Crypto.Cipher import blockalgo

That works fine.

So, I’m guessing there is some error in the AES module?

Solution

Most likely, your PyCrypto installation is broken and _AES.dll is missing.

Try to reinstall it according to this question: How do I install PyCrypto on Windows?

Answered By – alexanderlukanin13

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Понравилась статья? Поделить с друзьями:
  • Forza motorsport 7 ошибка при запуске приложения 0xc000007b
  • Frmt read ошибка пионер
  • Forza motorsport 7 ошибка 0xc0000007b как исправить
  • Forza horizon ошибка 0x89235108
  • Forza horizon 5 системная ошибка