Ответ 1
Я спросил г-на Гвидо В Россума. Он ответил, что "я не думаю, что есть способ, но это может сделать достойный запрос функции. Вы можете отправить его на bugs.python.org". Так я и сделал.
Я хочу сериализовать/десериализовать контекст md5. Но я не знаю, как это сделать на Python. Псевдокод того, что я хочу сделать.
import md5
# Start hash generation
m = md5.new()
m.update("Content")
# Serialize m
serialized_m = serialize(m)
# In another function/machine, deserialize m
# and continue hash generation
m2 = deserialize(serialized_m)
m2.update("More content")
m2.digest()
Для этого существуют библиотеки С++. Есть ли для Python? Почему библиотека md5 не поддерживает его? Существуют ли проблемы безопасности? Спасибо.
Отредактировано: Я хочу сделать это, потому что, например, HTTP-сервер хочет принимать потоковые данные в разных HTTP-запросах. Было бы удобно сериализовать контекст md5 как-то между запросами.
Я спросил г-на Гвидо В Россума. Он ответил, что "я не думаю, что есть способ, но это может сделать достойный запрос функции. Вы можете отправить его на bugs.python.org". Так я и сделал.
Объекты HASH не могут быть сериализованы: Как сериализовать хеш-объекты в Python
Предполагая, что вы можете передавать данные без выделения:
from Crypto.Hash import MD5
# generate hash
m = MD5.new()
s = "foo"
m.update(s)
# serialize m
serialized = s
# deserialize and continue hash generation
m2 = MD5.new(serialized)
if m2.hexdigest() == m.hexdigest():
print "success"
m2.update("bar")