前情
需要使用Python和Java实现同一个AES加解密算法,使Python版本加密的密文能够由Java代码解密,反之亦然。
Python实现
Python为3.6版本
# -*- coding: utf-8 -*-
import base64
from Crypto.Cipher import AES
from urllib import parse
AES_SECRET_KEY = 'lingyejunAesTest' #此处16|24|32个字符
IV = "1234567890123456"
# padding算法
BS = len(AES_SECRET_KEY)
pad = lambda s: s + (BS - len(s) % BS) * chr(BS - len(s) % BS)
unpad = lambda s: s[0:-ord(s[-1:])]
class AES_ENCRYPT(object):
def __init__(self):
self.key = AES_SECRET_KEY
self.mode = AES.MODE_CBC
#加密函数
def encrypt(self, text):
cryptor = AES.new(self.key.encode("utf8"), self.mode, IV.encode("utf8"))
self.ciphertext = cryptor.encrypt(bytes(pad(text), encoding="utf8"))
#AES加密时候