python-AES-CBC解密

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

KEY = '' # 密钥
IV = b'' # 偏移量
BLOCK_SIZE = 16

def aes_decrypt(ciphertext, key):
    """
    AES解密
    :param ciphertext:
    :param key:
    :return:
    """
    b_key = key.encode()
    cipher = AES.new(b_key, AES.MODE_CBC, IV)
    # 先base64编码一手
    base64Str = base64.b64decode(ciphertext)
    # 再解码一手
    dec_text = cipher.decrypt(base64Str).decode()
    # 去除补位
    dec_text = dec_text[:-ord(dec_text[-1])]
    return str(dec_text)

Python-AES 指的是基于 PythonAES (高级加密标准) 实现库。AES 是一种对称加密算法,由美国国家标准技术研究所(NIST)于2001年采纳作为联邦信息处理标准,并广泛用于各种安全通信领域。 ### Python-AES 库的功能特性: 1. **加密与解密**:Python-AES 允许用户将数据从明文转换成密文(加密),以及将密文转换回明文(解密)。这依赖于预先设置的密钥和模式(如 CBC、CFB 等)。 2. **多种模式支持**:除了基本的 ECB(电子密码本)模式外,还有更复杂的模式如 CBC(密码块链接)、CFB(密码反馈)等,用于提供更好的安全性并避免特定类型的攻击(如块碰撞攻击)。 3. **自定义密钥长度**:通常,AES 使用128位、192位或256位的密钥长度,通过 Python-AES 可以轻松调整到所需的密钥长度,适应不同的安全需求。 4. **高效性能优化**:一些实现会针对现代处理器进行优化,以提高加密和解密的速度,尤其是在处理大量数据时更为关键。 5. **跨平台兼容性**:作为 Python 库的一部分,Python-AES 具有良好的跨平台兼容性,可以在 Windows、Linux 和 macOS 上无缝运行。 ### 安装与使用示例: 安装 Python-AES 类似于安装其他 Python 包一样简单: ```bash pip install pycryptodome ``` 请注意,虽然`pycryptodome`包包含了类似功能,但它是一个独立的库,并不是所有版本都直接称为“Python-AES”。实际上,“Crypto”模块是其内部的一个部分,提供了包括AES在内的多种加密算法的支持。 下面是简单的使用示例: ```python from Crypto.Cipher import AES import os def encrypt(plaintext, key): cipher = AES.new(key, AES.MODE_CBC) # 对齐处理 block_size_padding = 16 - len(plaintext) % 16 plaintext += bytes([block_size_padding]) * block_size_padding encrypted_data = cipher.encrypt(plaintext) return (encrypted_data, cipher.iv) def decrypt(ciphertext, key): iv = ciphertext cipher = AES.new(key, AES.MODE_CBC, iv=iv) decrypted_data = cipher.decrypt(ciphertext) padding_length = decrypted_data[-1] return decrypted_data[:-padding_length] # 示例密钥和明文 key = b'Sixteen byte key' plaintext = b'This is a secret message.' ciphertext, iv = encrypt(plaintext, key) decrypted_text = decrypt(ciphertext, key) print("Encrypted:", ciphertext) print("Decrypted:", decrypted_text.decode('utf-8')) ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

每天说够一万句废话

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值