python AES加密
from Crypto.Cipher import AES
import base64
def pkcs5padding_update(str_data):
# pkcs5padding实际上是pkcs7padding
block_size = 16 # 块大小,16字节 128位
n = block_size - (len(str_data) % block_size) # 计算出需要填充的字节数量,如果是n=16,则填充一个完整块
n_value = chr(n) # 根据填充数量n,返回n对应的ASCII 字符
result_data = str_data + n * n_value # 对齐数据
return result_data
def aes_encrypt(key, data):
if len(key) > 16: # 密钥支持128 192 256的长度,这里限制了128位
print("当前仅支持128位(16字节)的密钥,请修改密钥长度")
return
else:
key = key + (16 - len(key) % 16) * '\0' # 补足密钥长度为128位(16字节)
byte_key = key.encode('utf-8')
data = pkcs5padding_update(data)
byte_data = data.encode('utf-8')
cipher = AES.new(byte_key, AES.MODE_ECB) # ECB模式
encrypt_data = cipher.encrypt(byte_data) # 加密数据
base64_encrypt_data = base64.b64encode(encrypt_data) # 输出base64的结果
utf8_data = base64_encrypt_data.decode('utf-8') # base64转换位utf8
return utf8_data
if __name__ == '__main__':
key = '123'
data = """222222"""
print(aes_encrypt(key, data))
本文来自博客园,作者:NFTO,转载请注明原文链接:https://www.cnblogs.com/NFTO21/p/14779207.html

浙公网安备 33010602011771号