待加密文本text=‘item_detail:34391311’,key=‘function’,iv随机,给出CBC模式的AES加密python代码,不使用cryptography模块
时间: 2024-10-14 20:12:48 浏览: 20
AES_CBC.zip_AES_CBC.zip_cbc_cbc加密_ship5vd_基于CBC的AES
在Python中,如果你不使用内置的`cryptography`模块,可以手动实现CBC模式的AES加密。这里是一个简单的例子,使用`pycryptodome`库,如果还没有安装,你可以通过`pip install pycryptodome`来安装:
```python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad
def pkcs7_pad(data, block_size=AES.block_size):
return pad(data, block_size, style='pkcs7')
def aes_cbc_encrypt(plaintext, key, iv):
cipher = AES.new(key, AES.MODE_CBC, iv)
ciphertext = cipher.encrypt(pkcs7_pad(plaintext.encode('utf-8')))
return ciphertext, iv
# 示例待加密文本和密钥
text = 'item_detail:34391311'
key = b'function' # 将key转换为bytes类型
# 生成随机IV
iv = get_random_bytes(AES.block_size)
# 加密
encrypted_text, iv_str = aes_cbc_encrypt(text, key, iv)
print("Encrypted Text:", encrypted_text.hex())
print("Initialization Vector (Base64):", iv_str.decode().replace('\n', ''))
#
阅读全文