使用Python实现AES加密

AES加密方式有多种,下述代码为ECB模式,AES(256),pkcs7补全(补全方式根据实际情况而定)
Python3实现AES加密,需要安装pycryptodome第三方库。

安装方式:
pip install pycryptodome

代码:

from Crypto.Util.Padding import pad
from Crypto.Cipher import AES


def aes_cipher(key, aes_str):
    # 使用key,选择加密方式
    aes = AES.new(key.encode('utf-8'), AES.MODE_ECB)
    pad_pkcs7 = pad(aes_str.encode('utf-8'), AES.block_size, style='pkcs7')  # 选择pkcs7补全
    encrypt_aes = aes.encrypt(pad_pkcs7)
    # 加密结果
    encrypted_text = str(base64.encodebytes(encrypt_aes), encoding='utf-8')  # 解码
    encrypted_text_str = encrypted_text.replace("\n", "")
    # 此处我的输出结果老有换行符,所以用了临时方法将它剔除

    return encrypted_text_str


if __name__ == '__main__':
    # key的长度需要补长(16倍数),方法可以借鉴其它文章,补全方式根据情况而定,此处我手动以‘0’补全的32位
    # key字符长度决定加密结果,16:AES(128),32:AES(256)
    key = "ABCDEFGHIJKLMN000000000000000000"
    # 加密字符串长同样需要16倍数,代码中pad()方法直接实现了
    aes_str = "abc"
    encryption_result = aes_cipher(key, aes_str)
    print(encryption_result)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值