python ecb是什么?python ecb加密解密实例

在 Python 中处理 ECB(Electronic Codebook,电子密码本模式) 通常涉及对称加密算法(如 AES),但需要特别强调的是:

⚠️ ECB 模式是不安全的,因为它对相同的明文块生成相同的密文块,无法隐藏数据模式,仅用于学习或测试,切勿用于生产环境,推荐使用 CBC、CTR、GCM 等更安全的模式。

python纯实现aes加密的ECB和CBC模式,带你使用python手写aes,提供python代码!!!
加载中
python纯实现aes加密的ECB和CBC模式,带你使用python手写aes,提供python代码!!!

使用 pycryptodome 库实现 AES-ECB

安装依赖

pip install pycryptodome

加密示例

from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
def aes_ecb_encrypt(plaintext: str, key: bytes) -> bytes:
    """
    使用 AES-ECB 模式加密
    :param plaintext: 明文字符串
    :param key: 16/24/32 字节的密钥
    :return: Base64 编码的密文
    """
    if len(key) not in (16, 24, 32):
        raise ValueError("密钥长度必须为 16、24 或 32 字节")
    cipher = AES.new(key, AES.MODE_ECB)
    padded_data = pad(plaintext.encode('utf-8'), AES.block_size)
    ciphertext = cipher.encrypt(padded_data)
    return base64.b64encode(ciphertext)
def aes_ecb_decrypt(ciphertext_b64: str, key: byt

python ecb是什么?python ecb加密解密实例

es) -> str: """ 使用 AES-ECB 模式解密 :param ciphertext_b64: Base64 编码的密文 :param key: 16/24/32 字节的密钥 :return: 解密后的明文 """ if len(key) not in (16, 24, 32): raise ValueError("密钥长度必须为 16、24 或 32 字节") ciphertext = base64.b64decode(ciphertext_b64) cipher = AES.new(key, AES.MODE_ECB) padded_plaintext = cipher.decrypt(ciphertext) plaintext = unpad(padded_plaintext, AES.block_size) return plaintext.decode('utf-8') # 示例使用 if __name__ == "__main__": key = b'0123456789abcdef' # 16 字节密钥(AES-128) message = "Hello, ECB Mode!" encrypted = aes_ecb_encrypt(message, key) print(f"加密结果 (Base64): {encrypted.decode('utf-8')}") decrypted = aes_ecb_decrypt(encrypted.decode('utf-8'), key) print(f"解密结果: {decrypted}")

使用 cryptography 库(不直接支持 ECB,需手动实现)

注意:cryptography 库出于安全考虑,默认不提供 ECB 模式,如需使用,需借助底层 Cipher 并指定 mode=ECB(部分版本支持)。

from cryptog

python ecb是什么?python ecb加密解密实例

raphy.hazmat.primitives.ciphers import Cipher, algorithms, modes from cryptography.hazmat.backends import default_backend from Crypto.Util.Padding import pad, unpad # 仍需 pycryptodome 用于填充 import base64 def aes_ecb_encrypt_cryptography(plaintext: str, key: bytes) -> bytes: if len(key) not in (16, 24, 32): raise ValueError("密钥长度必须为 16、24 或 32 字节") padded_data = pad(plaintext.encode('utf-8'), 16) cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=default_backend()) encryptor = cipher.encryptor() ciphertext = encryptor.update(padded_data) + encryptor.finalize() return base64.b64encode(ciphertext) def aes_ecb_decrypt_cryptography(ciphertext_b64: str, key: bytes) -> str: if len(key) not in (16, 24, 32): raise ValueError("密钥长度必须为 16、24 或 32 字节") ciphertext = base64.b64decode(ciphertext_b64) cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=default_backend()) decryptor = cipher.decryptor() padded_plaintext = decryptor.update(ciphertext) + decryptor.finalize() plaintext = unpad(padded_plaintext, 16) return plaintext.decode('utf-8')

重要提醒

项目 说明
安全性

python ecb是什么?python ecb加密解密实例

ECB 不推荐用于任何实际应用场景

替代方案 使用 AES.MODE_CBCAES.MODE_CTRAES.MODE_GCM
密钥管理 密钥应安全存储,避免硬编码
填充方式 使用 Crypto.Util.Padding 进行 PKCS7 填充

更安全的替代示例(AES-GCM)

from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
import base64
def aes_gcm_encrypt(plaintext: str, key: bytes) -> tuple:
    """返回 (nonce, ciphertext, tag)"""
    cipher = AES.new(key, AES.MODE_GCM)
    ciphertext, tag = cipher.encrypt_and_digest(plaintext.encode('utf-8'))
    return cipher.nonce, ciphertext, tag
def aes_gcm_decrypt(nonce: bytes, ciphertext: bytes, tag: bytes, key: bytes) -> str:
    cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
    plaintext = cipher.decrypt_and_verify(ciphertext, tag)
    return plaintext.decode('utf-8')
# 使用示例
key = get_random_bytes(32)  # 256 位密钥
nonce, ct, tag = aes_gcm_encrypt("Secure message", key)
decrypted = aes_gcm_decrypt(nonce, ct, tag, key)
print(f"解密: {decrypted}")

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/480978.html

(0)
Python美元怎么换算?Python汇率转换代码
上一篇 2026年7月10日 16:45
Python HttpRunner如何快速上手?接口自动化测试框架实战
下一篇 2026年7月10日 16:48

相关推荐

  • 服务器常见得十大管理软件有哪些?服务器管理工具哪个好用

    在数字化转型的浪潮中,服务器作为企业IT架构的核心支柱,其稳定性与效率直接决定了业务的连续性,高效的服务器管理不再依赖单纯的人工运维,而是借助专业的管理软件实现自动化、智能化与可视化, 面对市场上琳琅满目的工具,IT管理者往往陷入选择困境,核心结论是:最优秀的服务器管理软件并非功能最全,而是最契合企业当前运维场……

    2026年3月30日
    10500
  • 高端设备与智能制造是什么?智能制造装备如何选择

    高端设备与智能制造的深度融合,是2026年制造业突破利润瓶颈、实现全要素生产率跃升的唯一确定性路径,2026行业变局:高端设备与智能制造的共生逻辑宏观趋势与权威数据印证根据中国信通院2026年《智能制造发展白皮书》披露,我国智能制造产值规模已突破8万亿元,高端装备在制造业固定资产投资中的占比跃升至5%,传统依靠……

    2026年4月28日
    5600
  • 服务器怎么上管理?服务器管理入门操作步骤详解

    服务器高效管理的核心在于建立标准化的运维流程与构建多维度的安全防护体系,而非单纯依赖技术堆砌,实现服务器的精细化管理,必须从权限隔离、实时监控、自动化运维及数据安全四个维度同步推进,形成闭环管理机制,才能确保业务系统的连续性与数据资产的完整性,这不仅是技术实施的规范,更是企业IT治理的基石, 实施严格的权限控制……

    2026年3月24日
    8900
  • 服务器安装云锁卡慢怎么办?云锁安装卡顿解决方法

    服务器安装云锁卡慢,本质是系统资源竞争与安全策略冲突的综合表现,而非单纯软件缺陷,大量运维实践表明,80%以上的卡顿问题可通过预检优化与安装流程调整在10分钟内解决,以下从现象归因、诊断步骤、优化方案三方面展开,提供可落地的解决方案,现象特征:卡顿的典型表现与发生阶段安装启动阶段:解压后执行安装程序无响应,任务……

    2026年4月15日
    6300
  • 服务器怎么加速?提升服务器速度的有效方法有哪些

    服务器加速的核心在于构建全方位的性能优化体系,而非单一技术的应用,通过硬件升级、网络架构优化、软件参数调优以及内容分发策略的组合实施,可系统性解决延迟高、响应慢、吞吐量低等性能瓶颈,服务器加速的本质是减少数据传输距离、降低数据处理时延、提升并发处理效率,这需要从物理层到应用层进行立体化改造, 硬件基础设施升级……

    2026年3月21日
    10300
  • 个人创建网站云主机怎么选?个人建网站用什么云主机好

    个人创建网站首选轻量级云主机,它比传统虚拟主机更稳定,比独立服务器更省钱,是新手建站性价比最高的起步方案,在2026年的互联网环境下,个人建站早已不再是技术大神的专属游戏,随着云计算技术的普及和CDN加速的成熟,哪怕你只是想在博客分享生活,或者搭建一个小型的作品集展示站,拥有一台属于自己的云主机依然是建立个人品……

    2026年6月13日
    3200
  • 服务器换成国外好吗?国外服务器对SEO的影响与优势

    将服务器迁移至海外节点,是当前众多企业与开发者突破业务增长瓶颈、实现全球化布局的关键战略决策,这一举措不仅能从根本上解决跨境访问延迟高、线路拥堵的问题,更能规避由于合规审查带来的业务中断风险,为数据安全与业务连续性提供更灵活的解决方案,核心结论在于:服务器换成国外,本质上是寻求更优的网络质量、更宽松的内容管理环……

    2026年3月12日
    11500
  • 服务器应用软件有哪些?常见的服务器软件大全推荐

    服务器应用软件是构建现代数字基础设施的核心要素,其种类直接决定了业务场景的运行效率与稳定性,从底层的操作系统到上层的业务逻辑处理,这些软件共同构成了一个严密的生态闭环,核心结论在于:服务器应用软件并非单一维度的工具,而是分为Web服务、数据库管理、文件传输、虚拟化容器、监控安全等几大关键类别,企业需根据高并发……

    2026年4月5日
    7300
  • 服务器监控系统如何实现?最新配置指南详解

    服务器监控系统如何实现服务器监控系统的实现是一个融合数据采集、处理、告警与可视化的系统工程,核心目标是保障系统稳定性、快速定位故障并优化性能资源,以下是构建专业级监控体系的关键步骤与核心技术:构建核心监控指标体系基础资源层:CPU: 使用率、负载(1/5/15分钟)、上下文切换、中断频率,top, vmstat……

    2026年2月8日
    12430
  • 服务器接入是什么意思,服务器接入方式有哪些

    服务器接入是企业构建数字化基础设施的关键环节,直接影响网络性能、数据安全与业务连续性,高效、稳定、安全的接入方案能显著提升企业IT架构的可靠性,降低运维成本,服务器接入的核心价值与原则服务器接入并非简单的物理连接,而是涉及网络拓扑、协议配置、安全策略的综合系统工程,其核心目标在于确保数据传输的低延迟、高吞吐与零……

    2026年3月12日
    12300

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注