Предыстория:
Привет. В настоящее время я работаю над проектом, который в основном использует Pickles для сохранения состояния объектов, которые у меня есть. Вот фрагмент кода двух функций, которые я написал:
from Kiosk import * #The main class used for the lockers
import gc #Garbage Collector library. Used to get all instances of a class
import pickle #Library used to store variables in files.
def storeData(Lockers:Locker):
with open('lockerData', 'wb') as File:
pickle.dump(Lockers, File)
def readData():
with open('lockerData', 'rb') as File:
return pickle.load(File)
Эти данные рассола в конечном итоге будут отправлены и получены с сервера с использованием библиотеки сокетов.
Я кое-что прочитал на тему Pickles, и кажется, что все согласны с тем, что в некоторых случаях использование pickles может быть довольно опасным, поскольку их относительно легко заставить выполнять нежелательный код.
Цель:
По вышеупомянутым причинам я хочу зашифровать свои данные рассола в AES перед записью их в файл рассола, таким образом, файл рассола всегда шифруется, даже когда он отправляется и принимается с сервера. Моя главная проблема сейчас в том, что я не знаю, как получить данные рассола, не записывая их сначала в файл рассола. pickle.dump() позволяет мне только записывать данные рассола в файл, но не позволяет мне сразу получить эти данные рассола.
Если я решу выполнить шифрование после того, как данные рассола уже были записаны в файл, это будет означать, что будет период времени, когда данные рассола будут храниться в виде обычного текста, и я не хочу, чтобы это произошло.
Псевдокод:
Вот как я ожидаю выполнения задачи:
PickleData = createPicle(Lockers)
PickleDataE = encrypt(PickleData)
with open('textfile.txt', 'wb') as File:
File.write(PickleDataE)
Вопрос:
Итак, мой вопрос: как я могу получить данные о рассоле, не записывая их в файл?