1

我有一个.pkl使用以下加密方法加密的腌制文件:

def encrypt_file(filepath, key):
    f = Fernet(key)
    with open(filepath, "rb") as file:
        file_data = file.read()

    encrypted_data = f.encrypt(file_data)
    with open(filepath, "wb") as file:
        file.write(encrypted_data)

我现在想解密并解开内存中的文件。这是因为我不想更改存储中的实际文件。

我尝试了以下方法:

f = Fernet(key)
with open(filepath, "rb") as file:
    encrypted_data = file.read(file)
    decrypted_data = f.decrypt(encrypted_data)
    vectorizer = p.load(decrypted_data)

原始文件被写为腌制.pkl然后加密。

所以我想我可以在 Python 中加载文件,解密它然后解开它。不幸的是,我收到以下错误,我不确定如何解决它:

web_1 | vectorizer = p.load(decrypted_data)
web_1 | TypeError: file must have 'read' and 'readline' attributes
4

1 回答 1

0

使用pickle.loads()

f = Fernet(key)
with open(filepath, "rb") as file:
    encrypted_data = file.read(file)
    decrypted_data = f.decrypt(encrypted_data)
    vectorizer = p.loads(decrypted_data)
于 2021-10-28T15:15:55.920 回答