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-cryptopycryptodome
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.
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-cryptopycryptodome
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.
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-cryptopycryptodome
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.
I got the same problem.
PyInstaller 3.0
pycrypto 2.6
Python 2.7
openSUSE 13.2 X86_64
pyinstaller main.py —key=test
./main
output from executable
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/home/pedro/workspace/ping/src/tools.py", line 4, in <module>
from Crypto import Random
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/lib64/python2.7/site-packages/Crypto/Random/__init__.py", line 29, in <module>
from Crypto.Random import _UserFriendlyRNG
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/lib64/python2.7/site-packages/Crypto/Random/_UserFriendlyRNG.py", line 38, in <module>
from Crypto.Random.Fortuna import FortunaAccumulator
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/lib64/python2.7/site-packages/Crypto/Random/Fortuna/FortunaAccumulator.py", line 39, in <module>
import FortunaGenerator
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/lib64/python2.7/site-packages/Crypto/Random/Fortuna/FortunaGenerator.py", line 36, in <module>
from Crypto.Cipher import AES
File "/usr/lib/python2.7/site-packages/PyInstaller/loader/pyimod03_importers.py", line 363, in load_module
exec(bytecode, module.__dict__)
File "/usr/lib64/python2.7/site-packages/Crypto/Cipher/AES.py", line 50, in <module>
from Crypto.Cipher import _AES
ImportError: cannot import name _AES
main returned -1
Hello Guys, How are you all? Hope You all Are Fine. Today I am trying to import from Crypto.Cipher import AES But I am facing following error ImportError: No module named Crypto.Cipher in python. So Here I am Explain to you all the possible solutions here.
Without wasting your time, Let’s start This Article to Solve This Error.
Contents
- How ImportError: No module named Crypto.Cipher Error Occurs ?
- How To Solve ImportError: No module named Crypto.Cipher Error ?
- Solution 1: Reinstall pycrypto
- Solution 2: remove crypto and pycrypto
- Solution 3: pycryptodome instead of pycrypto
- Summary
How ImportError: No module named Crypto.Cipher Error Occurs ?
I am trying to import from Crypto.Cipher import AES But I am facing following error.
ImportError: No module named Crypto.Cipher
How To Solve ImportError: No module named Crypto.Cipher Error ?
- How To Solve ImportError: No module named Crypto.Cipher Error ?
To Solve ImportError: No module named Crypto.Cipher Error You just need to reinstall pycrypto so that First of all uninstall pycrypto and then reinstall it. To uinstall pycrypto use this command. pip uninstall pycrypto. Now install pycrypto again with easy install. Use this command. easy_install pycrypto Now your error should be solved. Second solution is Here pycrypto is no longer safe. Use pycryptodome instead, it is a drop-in replacement. So First of all you need to uninstall all versions of
cryptoandpycryptofirst, then installpycryptodome: pip3 uninstall crypto then pip3 uninstall pycrypto and pip3 install pycryptodome. - ImportError: No module named Crypto.Cipher
To Solve ImportError: No module named Crypto.Cipher Error You just need to reinstall pycrypto so that First of all uninstall pycrypto and then reinstall it. To uinstall pycrypto use this command. pip uninstall pycrypto. Now install pycrypto again with easy install. Use this command. easy_install pycrypto Now your error should be solved. Second solution is Here pycrypto is no longer safe. Use pycryptodome instead, it is a drop-in replacement. So First of all you need to uninstall all versions of
cryptoandpycryptofirst, then installpycryptodome: pip3 uninstall crypto then pip3 uninstall pycrypto and pip3 install pycryptodome.
Solution 1: Reinstall pycrypto
You just need to reinstall pycrypto so that First of all uninstall pycrypto and then reinstall it. To uinstall pycrypto use this command.
pip uninstall pycrypto
Now install pycrypto again with easy install. Use this command.
easy_install pycrypto
Now your error should be solved.
Solution 2: remove crypto and pycrypto
Just need to remove crypto and pycrypto with this command.
sudo pip uninstall crypto
Then,
sudo pip uninstall pycrypto
and reinstalling pycrypto:
sudo pip install pycrypto
Now, you can import it in your file just like this.
from Crypto.Cipher import AES
Solution 3: pycryptodome instead of pycrypto
Here pycrypto is no longer safe. Use pycryptodome instead, it is a drop-in replacement. So First of all you need to uninstall all versions of crypto and pycrypto first, then install pycryptodome:
pip3 uninstall crypto
pip3 uninstall pycrypto
pip3 install pycryptodome
Summary
It’s all About this issue. Hope all solution helped you a lot. Comment below Your thoughts and your queries. Also, Comment below which solution worked for you?
Also, Read
- ImportError: No module named matplotlib.pyplot
|
Am@Zonk@ 0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
||||
|
1 |
||||
|
09.07.2012, 21:42. Показов 13096. Ответов 17 Метки нет (Все метки)
Возникли сложности с подключением библиотеки Crypto:
Выдает следующую ошибку: Код >>>Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
import Crypto.Cipher.AES
File "C:Python32libCryptoCipherAES.py", line 50, in <module>
from Crypto.Cipher import _AES
ImportError: cannot import name _AES
__________________
0 |
|
soon 2554 / 1319 / 178 Регистрация: 09.05.2011 Сообщений: 3,086 Записей в блоге: 1 |
||||||||
|
09.07.2012, 21:55 |
2 |
|||||||
|
Что-то не вяжется…
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
09.07.2012, 22:03 [ТС] |
3 |
|
Что-то не вяжется… Что именно Вам не нравится?
0 |
|
accept 4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
||||
|
10.07.2012, 02:24 |
4 |
|||
python.org. pycrypto
0 |
|
Am@Zonk@ 0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
||||
|
10.07.2012, 07:06 [ТС] |
5 |
|||
|
python.org. pycrypto Я именно оттуда и скачивала. Всё равно такая ошибка.
0 |
|
2554 / 1319 / 178 Регистрация: 09.05.2011 Сообщений: 3,086 Записей в блоге: 1 |
|
|
10.07.2012, 07:13 |
6 |
|
Am@Zonk@, мне не нравится то, что в коде вы пишете одно, а в ошибке как будто совсем другое.
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
10.07.2012, 07:19 [ТС] |
7 |
|
Am@Zonk@, мне не нравится то, что в коде вы пишете одно, а в ошибке как будто совсем другое. Ошибку придумывала не я. Мне самой она не нравится.
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
10.07.2012, 08:29 |
8 |
|
Am@Zonk@, мне не нравится то, что в коде вы пишете одно, а в ошибке как будто совсем другое. а что там расходится ?
Я именно оттуда и скачивала. Всё равно такая ошибка. как устанавливала ?
0 |
|
Am@Zonk@ 0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
||||
|
10.07.2012, 11:11 [ТС] |
9 |
|||
|
как устанавливала ? Разными способами. Кстати, слеующий код работает без проблем:
А можно пошагово инструкцию по установке?
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
11.07.2012, 04:17 |
10 |
|
Разными способами. какими ?
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
11.07.2012, 09:24 [ТС] |
11 |
|
какими ? устанавливаем 32-битный python32 Здесь на посмледнем пункте всё сломалось
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
11.07.2012, 10:39 |
12 |
|
поставил mingw и msys, pycrypto не компилируется, так как не может найти библиотеку GMP
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
11.07.2012, 13:29 [ТС] |
13 |
|
поставил mingw и msys, pycrypto не компилируется, так как не может найти библиотеку GMP python не является внутренней или внешней командой, исполняемой программой или пакетным файлом
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
12.07.2012, 01:44 |
14 |
|
python не является внутренней или внешней командой, исполняемой программой или пакетным файлом панель управления -> система -> дополнительные настройки -> переменные среды
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
12.07.2012, 07:50 [ТС] |
15 |
|
панель управления -> система -> дополнительные настройки -> переменные среды Всё равно то же самое
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
12.07.2012, 08:37 |
16 |
|
Всё равно то же самое что именно ?
0 |
|
0 / 0 / 1 Регистрация: 29.03.2012 Сообщений: 17 |
|
|
12.07.2012, 10:51 [ТС] |
17 |
|
что именно ? python не является внутренней или внешней командой, исполняемой программой или пакетным файлом
0 |
|
4864 / 3286 / 468 Регистрация: 10.12.2008 Сообщений: 10,570 |
|
|
13.07.2012, 02:34 |
18 |
|
python не является внутренней или внешней командой, исполняемой программой или пакетным файлом значит, ты не сделала
0 |
Когда я пытаюсь запустить app.py(Python 3.3, PyCrypto 2.6), мой virtualenv продолжает возвращать указанную выше ошибку. Операция импорта — это просто from Crypto.Cipher import AES. Я искал дубликаты, и вы могли бы сказать, что есть некоторые, но я пробовал решения (хотя большинство из них даже не решения), и ничего не получилось.
Вы можете видеть, какие файлы для PyCrypto ниже:

Ответ 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:Python27Libsite-packagescrypto - to:
C:Python27Libsite-packagescrypto
Вот как была названа папка после установки 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:Python27Scripts (путь, где находится 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
