图像上的AES加密

发布于 2025-01-26 04:24:47 字数 910 浏览 3 评论 0原文

from hashlib import md5
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad

class AESCipher:
    def __init__(self, key):
        password = key.encode('utf-8')
        self.key = md5(password).digest()

    def encrypt(self, data):
        vector = b'0123456789ABCDEF'
        # vector = get_random_bytes(AES.block_size)
        # .encrypt(pad(message, BLOCK_SIZE))
        encryption_cipher = AES.new(self.key, AES.MODE_CBC, vector)
        return vector + encryption_cipher.encrypt(pad(data,  AES.block_size))

    def decrypt(self, data):
        file_vector = data[:AES.block_size]
        decryption_cipher = AES.new(self.key, AES.MODE_CBC, file_vector)
        return  unpad(decryption_cipher.decrypt(data[AES.block_size:]),  AES.block_size)

我有一个用于AES加密的代码块,如果我更改键的长度,那意味着如果我采用16个字节的密钥长度,它将自动执行AES128,反之亦然?

from hashlib import md5
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
from Crypto.Util.Padding import pad, unpad

class AESCipher:
    def __init__(self, key):
        password = key.encode('utf-8')
        self.key = md5(password).digest()

    def encrypt(self, data):
        vector = b'0123456789ABCDEF'
        # vector = get_random_bytes(AES.block_size)
        # .encrypt(pad(message, BLOCK_SIZE))
        encryption_cipher = AES.new(self.key, AES.MODE_CBC, vector)
        return vector + encryption_cipher.encrypt(pad(data,  AES.block_size))

    def decrypt(self, data):
        file_vector = data[:AES.block_size]
        decryption_cipher = AES.new(self.key, AES.MODE_CBC, file_vector)
        return  unpad(decryption_cipher.decrypt(data[AES.block_size:]),  AES.block_size)

i have this block of code for AES encryption,if i change the length of key does that mean if i take key length of 16 bytes it will automatically perform AES128 and vice-versa?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文