Python3下实现AES-CBC

博主使用的是Python3.6,所以首先需要pip安装pycryptodomex,
之后导入Cryptodome就可以使用了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import base64
from Cryptodome.Cipher import AES
class AES_CBC:
def __init__(self):
# 可以自定义key和iv
self.__key = bytes.fromhex('43657CB361667F45454E537973576562')
self.__iv = bytes.fromhex('1934577290ABCDEF1264147890234545')

def pad(self, data):
length = 16 - (len(data) % 16)
return data.encode() + (chr(length) * length).encode()

def encrypt(self, data):
cipher = AES.new(self.__key, AES.MODE_CBC, self.__iv)
encryptdata = base64.b64encode(cipher.encrypt(self.pad(data)))
return encryptdata