You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python新手求助:如何用AES-ECB分块加密已填充字节串

AES-ECB分块加密实现指南

前置准备

首先需要安装pycryptodome库(Python标准库无内置AES实现),执行命令:

pip install pycryptodome

实现步骤与代码示例

假设你已经有符合16字节倍数要求的encoded_string(字节类型),以及符合AES规格的密钥(16字节对应AES-128,24字节对应AES-192,32字节对应AES-256),具体实现如下:

from Crypto.Cipher import AES

# 1. 准备密钥,必须是16/24/32字节的字节串
key = b'your_16_byte_key_here'  # 示例:16字节密钥

# 2. 初始化AES-ECB加密器
cipher = AES.new(key, AES.MODE_ECB)

# 3. 分块加密并拼接密文
ciphertext = b''
# 按16字节步长循环切片分块
for i in range(0, len(encoded_string), 16):
    block = encoded_string[i:i+16]
    # 对每个块加密,直接拼接结果
    ciphertext += cipher.encrypt(block)

# ciphertext即为最终拼接完成的密文
print(ciphertext)

关键细节说明

  • 分块逻辑:利用Python切片encoded_string[i:i+16],从索引0开始每次取16字节,因你的encoded_string已满足16字节倍数要求,最后一块刚好是完整的16字节,无需额外处理边界。
  • ECB模式提示:ECB是最基础的AES模式,无IV(初始化向量),相同明文块会生成相同密文块,安全性较低,生产环境不建议使用,优先选择CBC、GCM等更安全的模式。
  • 类型要求:密钥、明文块必须是字节类型,若密钥是字符串,需用key.encode('utf-8')转换为字节串。

内容的提问来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 00:10:49