AES加密解密,python实现

AES(Advanced Encryption Standard)是一种对称加密算法,常用于保护敏感数据的安全性。它可以对数据进行加密和解密,使用相同的密钥进行加密和解密操作。

在Python中,你可以使用 cryptography 模块来进行 AES 加密和解密操作。以下是一个简单的示例:

from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import padding
from base64 import b64encode, b64decode

def encrypt_AES(key, data):
    # 选择AES加密算法和CBC模式
    cipher = Cipher(algorithms.AES(key), modes.CBC(b'\x00' * 16), backend=default_backend())
    encryptor = cipher.encryptor()
    # 使用自动填充
    padder = padding.PKCS7(algorithms.AES.block_size).padder()
    padded_data = padder.update(data) + padder.finalize()
    # 加密数据
    ct = encryptor.update(padded_data) + encryptor.finalize()
    # 返回Base64编码后的密文
    return b64encode(ct)

def decrypt_AES(key, ct):
    # 选择AES加密算法和CBC模式
    cipher = Cipher(algorithms.AES(key), modes.CBC(b'\x00' * 16), backend=default_backend())
    decryptor = cipher.decryptor()
    # 解密数据
    padded_data = decryptor.update(b64decode(ct)) + decryptor.finalize()
    # 移除填充
    unpadder = padding.PKCS7(algorithms.AES.block_size).unpadder()
    data = unpadder.update(padded_data) + unpadder.finalize()
    return data

# 128位密钥
key = b'your_secret_key_here'
# 待加密的数据
data = b'Hello, AES encryption!'
# 加密数据
encrypted_data = encrypt_AES(key, data)
print("Encrypted data:", encrypted_data)

# 解密数据
decrypted_data = decrypt_AES(key, encrypted_data)
print("Decrypted data:", decrypted_data.decode('utf-8'))

在这个示例中,我们定义了两个函数 encrypt_AESdecrypt_AES,用于加密和解密数据。你只需要提供密钥和待加密的数据,就可以得到加密后的密文,并且可以通过密文和相同的密钥来还原原始数据。

  • 17
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值