对称加密指加密密钥和解密密钥使用的是一个
AES包含ECB和CBC。ECB不需要偏移量,CBC需要偏移量
AES三要素:key ,mode(模式),iv(偏移量)
text(要加密的文本)
AES注意点:key,text,iv都是bytes类型
key的长度必须为16,或24,或32。
text的长度也必须是16的倍数,如果不是,可以用空格‘\0'补齐(循环补齐,对16取余=0)
iv偏移量:必须是16字节
在python中的使用:
- 安装pip install pycryptodome
- from Crypto.Cipher import AES
- 创建AES对象,aes=AES.new(key,AES.MODE_CBC,iv)
- 密文:en_text=aes.encrypt(text.encode())
- 解密:aes.decrypt(en_text).decode()
from Crypto.Cipher import AES
key=b'1111111111111111'
text='abc'
while len(text.encode('utf-8'))%16!=0:
text += '\0'
print(text)
iv=b'aaaaaaaaaaaaaaaa'
aes=AES.new(key,AES.MODE_CBC,iv)
aes_data=aes.encrypt(text.encode())
print(aes_data)