当要使用 python 进行加密数据的时候报错了
from Crypto.Util.Padding import pad, unpad
from Crypto.Cipher import AES
报错
File "F:\huisu.py", line 1, in <module>
from Crypto.Util.Padding import pad, unpad
ModuleNotFoundError: No module named 'Crypto'
解决办法
1、安装pip install Crypto
,转完 Lib/site-packages 中会出现crypto 和crypto-1.4.1.dist-info 目录
可以看下crypto 目录中的结构,并没有 Util 和 Cipher
2、将crypto 修改为 Crypto
3、安装pip install pycryptodome
,安装完成后再查看crypto 目录,发现已经有 Util 和 Cipher。执行代码可以正常运行。
4、如果嫌麻烦,直接安装pip install pycryptodome
即可。
原因
pycryptodome和Crypto (或称为pycrypto )都是 Python 中用于加密和解密操作的库,它们提供了许多密码学算法的实现。
Crypto(pycrypto) 是一个较早的 Python 加密库,后来由于维护停滞,它可能存在一些已知的漏洞或安全性问题,被 pycryptodome所取代。
pycryptodome 是一个在 pycrypto 基础上发展起来的项目,目的是提供更加现代、安全和可维护的密码学库。pycryptodome相对于 pycrypto更新,并在安全性方面更为强大,因为它采用了更现代的实现, 建议使用pycryptodome。