AES实践 pycryptodome 实现(ECB模式)对称加密 – AES(256)加密,pkcs7补全方式

本文详细介绍了AES加密中PKCS5填充规则,包括如何根据16字节块大小对明文进行补足,并特别提到补足的是Unicode值而非空格。通过实例展示了如何在Python中使用PyCryptodome库实现AES加解密操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AES的padding应该怎么填充,PKCS5的填充就是块的大小默认是16,然后需要加密的明文长度除以这个,不足的补足到16的倍数,刚好是16的倍数也要补16位,然后补足的不是空格,而是差几位补充几位的Unicode值

from Crypto.Util.Padding import pad
from Crypto.Cipher import AES
import base64
#下边是基本的加密方法
#aes_str是要加密的字符串
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)

完整代码:

# 如果包装不了 就按照下面2个步骤
# pip uninstall crypto pycryptodome
# pip install pycryptodome
from Crypto.Util.Padding import pad
from Crypto.Cipher import AES
import base64
 
class PrpCrypt(object):
 
    def __init__(self):
        self.unpad = lambda date: date[0:-ord(date[-1])]
 
    def aes_cipher(self, 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)
        # 加密结果
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值