在 Python 3.7 中解压和解密内存中的文件
Unpickling and decrypting a file in memory in 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)
我现在想解密和unpickle 内存中的文件。这是因为我不想更改存储中的实际文件。
我尝试了以下方法:
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)
原文件写成pickle.pkl
然后加密
所以我想我可以只加载 Python 中的文件,解密然后解开它。不幸的是,我收到以下错误,我不确定如何修复它:
web_1 | vectorizer = p.load(decrypted_data)
web_1 | TypeError: file must have 'read' and 'readline' attributes
使用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)
我有一个腌制的 .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)
我现在想解密和unpickle 内存中的文件。这是因为我不想更改存储中的实际文件。
我尝试了以下方法:
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)
原文件写成pickle.pkl
然后加密
所以我想我可以只加载 Python 中的文件,解密然后解开它。不幸的是,我收到以下错误,我不确定如何修复它:
web_1 | vectorizer = p.load(decrypted_data)
web_1 | TypeError: file must have 'read' and 'readline' attributes
使用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)