A-A+
python 编写 AES/ECB/PKCS7Padding 详细的加密解密脚本示例代码

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】
闲来无事,训练训练OpenAI玩玩,越训练越智能,还真的是厉害。
import base64
from Cryptodome.Cipher import AES
def pkcs7padding(data):
"""使用PKCS7Padding填充数据"""
bs = AES.block_size
padding = bs - len(data) % bs
padding_text = bytes([padding] * padding)
return data + padding_text
def pkcs7unpadding(data):
"""使用PKCS7Padding删除填充数据"""
n = data[-1]
return data[:-n]
def encrypt(key, plaintext):
"""使用AES / ECB / PKCS7Padding加密数据"""
plaintext = pkcs7padding(plaintext)
cipher = AES.new(key, AES.MODE_ECB)
return base64.b64encode(cipher.encrypt(plaintext)).decode("utf-8")
def decrypt(key, ciphertext):
"""使用AES / ECB / PKCS7Padding解密数据"""
ciphertext = base64.b64decode(ciphertext)
cipher = AES.new(key, AES.MODE_ECB)
plaintext = cipher.decrypt(ciphertext)
return pkcs7unpadding(plaintext).decode("utf-8")
# 示例使用
key = b"1234567890abcdef" # 密钥,必须是16,24或32位
plaintext = "Hello, World!" # 明文
ciphertext = encrypt(key, plaintext) # 加密
print(ciphertext) #
布施恩德可便相知重
微信扫一扫打赏
支付宝扫一扫打赏