python - 在 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
解决方案
使用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)
推荐阅读
- java - 防止 swagger 将类似的正则表达式映射合并到单个操作
- javascript - 将库与 React Native 链接时遇到错误
- angular - 如何以非可怕的方式使用 rxjs 从各种请求中收集数据?
- visual-studio-code - VS 代码扩展 - OnDidTextChange 或类似的东西
- c++ - 配置google cloud lib通过代理上传下载文件
- node.js - Node.js 读取大文件,编辑显示
- vue.js - three.js - bufferGeometry 不显示
- django - 仅调用一个时,Slack bot 发送消息两次
- ember.js - 如何使用 ember-power-select 搜索名称或电子邮件
- python - PyQt5 Designer 不工作:此应用程序无法启动,因为无法初始化 Qt 平台插件