【发布时间】:2020-01-11 20:04:09
【问题描述】:
我有一个二进制文件,其中包含一些多行数据,其中每行在写入之前都经过加密。现在我试图一次读取一行,然后在循环下解密它,但我得到了错误提示
cryptography.exceptions.AlreadyFinalized:上下文已经完成。
我的示例代码如下:
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import padding
from cryptography.hazmat.backends import default_backend
key = #32 bit long key
iv = #16 bit long
cipher = Cipher(algorithms.AES(key),modes.CBC(iv),backend = default_backend())
decryptor = cipher.decryptor()
database = open("entry.txt",'rb')
for line in database:
line = line.split(b" ")
line = line[0]
line = (decryptor.update(line) + decryptor.finalize()).decode("UTF-8")
line = (line.split("-~-"))[1]
print(line)
为了更好的说明entry.txt中解密状态的数据
1-~-{'位置': '1', '天气': '1', '时间': '00:58', '数据': '1'}-~-##### ######################
2-~-{'位置': '2', '数据': '2', '时间': '00:58', '天气': '2'}-~-##### ######################
提前致谢
PS:无法附加加密数据,因为它是二进制格式
【问题讨论】:
标签: python cryptography