1.代碼
from Crypto.Cipher import AES
import base64
class Aes_ECB(object):
def __init__(self):
self.key = 'XXXXXXXXXXX' #秘鑰
self.MODE = AES.MODE_ECB
self.BS = AES.block_size
self.pad = lambda s: s + (self.BS - len(s) % self.BS) * chr(self.BS - len(s) % self.BS)
self.unpad = lambda s: s[0:-ord(s[-1])]
# str不是16的倍數那就補足為16的倍數
def add_to_16(value):
while len(value) % 16 != 0:
value += '\0'
return str.encode(value) # 返回bytes
def AES_encrypt(self, text):
aes = AES.new(Aes_ECB.add_to_16(self.key), self.MODE) # 初始化加密器
encrypted_text = str(base64.encodebytes(aes.encrypt(Aes_ECB.add_to_16(self.pad(text)))),
encoding='utf-8').replace('\n', '') # 這個replace大家可以先不用,然后在調試出來的結果中看是否有'\n'換行符
# 執行加密並轉碼返回bytes
return encrypted_text