下面的代码在运行时会抛出错误“发生异常:ValueError 数据必须与 ECB 模式下的块边界对齐”。这是一个加密的 json 文件,无论我做什么都会抛出此错误。有什么想法吗?
我真的只是想制作或找到可以从文件中获取加密数据并解密的东西。唯一有效的是这个网站。它在 aes ecb 中完美运行,但只允许最大 2mb 的文件。
from Crypto.Cipher import AES
encFile = open('file.json', 'r', encoding='Latin1')
encFile = encFile.read()
key = open('Key.txt', 'r')
key = key.read()
cipher = AES.new(key.encode("utf8"), AES.MODE_ECB)
encFile = encFile.encode("utf8")
decrypted = cipher.decrypt(encFile)
AES 是一种分组密码,可在 128 位块(即 16 字节)上运行。在 ECB 模式下,消息被分割成该大小的块,并且每个块都单独加密。如果消息的长度不是块大小的倍数,则末尾有一个无法加密的不完整块(至少不能使用 ECB)。您有两个选择:
最后但并非最不重要的一点是,应该指出的是,ECB 是不安全的,因为相同的纯文本块将被加密为相同的密文块。