首页 > 解决方案 > 在 Python 3.7 中解压和解密内存中的文件

问题描述

我有一个.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

标签: pythonencryptionpicklefernet

解决方案


使用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)

推荐阅读