Сериализовать состояние вычисления MD5 и возобновить его позже?

Я хочу сериализовать / deserialize контекст 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() 

Для этого существуют библиотеки C ++. Есть ли для Python? Почему библиотека md5 не поддерживает его? Существуют ли проблемы безопасности? Благодарю.

Отредактировано: я хочу сделать это, потому что, например, HTTP-сервер хочет принимать потоковые данные в разных HTTP-запросах. Было бы удобно последовательно сериализовать контекст md5 между запросами.

  • Безопасность eval () на Python на ненадежных строках?
  • Python 3, Есть ли какие-либо известные дыры безопасности в ast.literal_eval (node_or_string)?
  • Почему декодер python заменяет более чем недопустимые байты из кодированной строки?
  • Права доступа на уровне поля и Безопасность в openerp 7
  • Насколько безопасна оценка выражения с помощью eval?
  • Есть ли альтернатива rexec для песочницы Python?
  • Приложения Python: можете ли вы каким-то образом защитить свой код?
  • Вопросы безопасности `pip -allow-external`
  • 2 Solutions collect form web for “Сериализовать состояние вычисления MD5 и возобновить его позже?”

    Я спросил г-на Гвидо В Россума. Он ответил, что «я не думаю, что есть способ, но это может сделать достойный запрос функции. Вы можете отправить его на bugs.python.org». Так я и сделал.

    http://bugs.python.org/issue16059

    Объекты 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") 
    Interesting Posts

    Python: конвертировать сложный словарь строк из Unicode в ASCII

    Можно ли использовать Python для написания кросс-платформенных приложений для iOS и Android?

    Идиоматический способ сделать список / dict в Cython?

    Как импортировать / открыть модуль numpy для IDLE

    Нулевая модель в Python недостаточно используется?

    Есть ли преимущества использования метода @static?

    Как запустить повторяющуюся задачу в фреймворке Python?

    Почему я получаю следующую ошибку в Python «ImportError: Нет модуля с именем py»?

    В python во время выполнения определите, является ли объект экземпляром класса (старый и новый)

    Урлобин Urllib на некоторых сайтах (например, StackApps api): возвращает результаты мусора

    Получить рабочие дни между датой начала и окончания с использованием панд

    Извлечь DataFrame для всех, кроме одного указанного столбца

    Реализация всех минимальных связующих деревьев

    Вычислить tm_isdst из даты и времени

    В Pycharm нет модуля под названием «панды»

    Python - лучший язык программирования в мире.