python-AES加密以及问题解决2021-09-28

AES加密

AES_CBC

AES_ECB

from Crypto.Cipher import AES
import base64
password = '1234567890123456'.encode("utf-8") #秘钥
text = '1234567890123456'.encode("utf-8") #需要加密的内容


model = AES.MODE_ECB #定义模式
aes = AES.new(password,model) #创建一个aes对象

en_text = aes.encrypt(text) #加密明文
print(en_text)
en_text = base64.encodebytes(en_text) #将返回的字节型数据转进行base64编码
print(en_text)
en_text = en_text.decode('utf8') #将字节型数据转换成python中的字符串类型
print(en_text.strip())

相关问题

更于:2021-09-28

问题一,安装crypto后报错No module named ‘Crypto.Cipher‘

o module named ‘Crypto.Cipher’

No module named ‘Crypto.Publickey‘

第一步,先检查安装包crypto文件夹下是否有cipher、publickey等文件。若有,可将crypto文件夹重命名为Crypto试一下。

若如图所示像我这样没有那些文件,就安装下pycryptodome和pycrypto.
参见:https://www.cnblogs.com/ss0202go/p/13161545.html

问题二,报错解决:TypeError: Object type class ‘str’ cannot be passed to C code

text=text.encode(“utf-8”)
key=key.encode(“utf-8”)
iv=key.encode(“utf-8”)

明文,密钥,IV都要编码

参见:https://blog.csdn.net/z15362133416/article/details/100135331

问题三,报错解决:Incorrect AES key length (11 bytes)

异常信息:无效的AES密钥长度:11字节

由于AES的秘钥规定是16位秘钥,这里写成了11位,所以异常了。

参见:https://blog.csdn.net/qq501569325/article/details/109648082

扫描二维码关注公众号,回复: 13771498 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_21102235/article/details/120526497
今日推荐