Как повторно использовать экземпляр hashlib.md5 - PullRequest
13 голосов
/ 09 ноября 2010

Как вы очищаете (или сбрасываете) и повторно используете экземпляр hashlib.md5 в python? Если я выполняю несколько операций хеширования в скрипте, кажется неэффективным каждый раз использовать новый экземпляр hashlib.md5, но из документации по питону я не вижу способа очистить или сбросить экземпляр.

Ответы [ 2 ]

8 голосов
/ 09 ноября 2010

Почему вы думаете, что неэффективно делать новый? Это маленький объект, и объекты создаются и уничтожаются постоянно. Используйте новый, и не беспокойтесь об этом.

0 голосов
/ 28 октября 2013

Вот что я сделал, просто напишу небольшую оболочку, которая повторно инициализирует хеш-объект.Обрабатывает грубость написания кода, но, возможно, не эффективность во время выполнения.

def Hasher(object):
    def __init__(self):
        self.md5 = hashlib.md5()

    def get_hash(self, o):
        self.md5.update(o)
        my_hash = self.md5.digest()
        self.md5 = hashlib.md5()
        return my_hash
...