CMDB 项目学习 - AES加密算法 - 数据的加密解密(Client端加密,Server端解密)

目录

一、AES加密

二、AES解密

三、结果测试


一、AES加密

from Crypto.Cipher import AES

def encrypt(message):
    key = b'dfdsdfsasdfdsdfs'
    cipher = AES.new(key, AES.MODE_CBC, key)
    ba_data = bytearray(message, encoding='utf-8')
    v1 = len(ba_data)
    v2 = v1 % 16
    if v2 == 0:
        v3 = 16
    else:
        v3 = 16 - v2
    for i in range(v3):
        ba_data.append(v3)
    # final_data = ba_data.decode('utf-8')
    msg = cipher.encrypt(ba_data)  # 要加密的字符串,必须是16个字节或16个字节的倍数
    return msg

二、AES解密

def decrypt(msg):
    from Crypto.Cipher import AES
    key = b'dfdsdfsasdfdsdfs'
    cipher = AES.new(key, AES.MODE_CBC, key)
    result = cipher.decrypt(
        msg)  、
    # result = b'\xe8\xa6\x81\xe5\x8a\xa0\xe5\xaf\x86\xe5\x8a\xa0\xe5\xaf\x86\xe5\x8a\xa0sdfsd\t\t\t\t\t\t\t\t\t'
    data = result[0:-result[-1]]
    return str(data, encoding='utf-8')

三、结果测试

CMDB 项目学习 - AES加密算法 - 数据的加密解密(Client端加密,Server端解密)