如何重用hashlib.md5实例
在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
你觉得创建一个新的对象为什么不高效呢?这个对象很小,而且对象的创建和销毁是很常见的事情。直接用一个新的,不用担心这些。