1

我正在尝试在 python 中使用算法 AES/CBC/PKCS5PADDING 进行加密。我正在使用在线工具https://8gwifi.org/CipherFunctions.jsp获取正确的数据,但无法在 python 中实现它。请在下面找到我的代码片段。

from Crypto.Cipher import AES
import base64
import re

DEFAULT_KEY = 'dkdlko9876543210'


class AesCbc:

    def __init__(self, key=None):
        self.key = key or DEFAULT_KEY
        self.mode = AES.MODE_CBC
        self.size = AES.block_size
        self.pad = lambda s: s + (self.size - len(s) % self.size) * chr(self.size - len(s) % self.size)

    def encrypt(self, content):
        cryptor = AES.new(self.key, self.mode, self.key)
        encrypted = cryptor.encrypt(self.pad(content))
        return base64.urlsafe_b64encode(encrypted)

    def decrypt(self, content):
        cryptor = AES.new(self.key, self.mode, self.key)
        content += (len(content) % 4) * '='
        content = base64.urlsafe_b64decode(content)
        decrypted = cryptor.decrypt(content)
        try:
            return re.compile('[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f\n\r\t]').sub('', decrypted.decode())
        except Exception:
            raise ValueError("inputted value can not be decrypted.")

test = AesCbc()

print(test.encrypt("value"))

但结果不同。我想实现与https://8gwifi.org/CipherFunctions.jsp相同的 AES/CBC/PKCS5PADDING 加密。请帮助我在 python 脚本中实现相同的算法。

4

0 回答 0