如何重用hashlib.md5实例

21 投票
2 回答
9576 浏览
提问于 2025-04-16 06:47

在Python中,如何清空(或重置)并重新使用一个hashlib.md5的实例呢?如果我在一个脚本中进行多次哈希操作,每次都使用一个新的hashlib.md5实例似乎效率不高,但从Python的文档中我没有找到任何方法来清空或重置这个实例。

2 个回答

-3

我做了这个,只是写了一个小的包装器,用来重新初始化哈希对象。这样可以处理代码写起来的麻烦,但可能在运行时效率不是特别高。

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
8

你觉得创建一个新的对象为什么不高效呢?这个对象很小,而且对象的创建和销毁是很常见的事情。直接用一个新的,不用担心这些。

撰写回答