如何重用 hashlib.md5 的实例

发布于 10-01 00:22 字数 121 浏览 8 评论 0原文

如何在 python 中刷新(或重置)并重用 hashlib.md5 的实例?如果我在脚本中执行多个哈希操作,每次使用 hashlib.md5 的新实例似乎效率很低,但从 python 文档中我没有看到任何刷新或重置实例的方法。

How do you flush (or reset) and reuse an instance of hashlib.md5 in python? If I am performing multiple hashing operations in a script, it seems inefficient to use a new instance of hashlib.md5 each time, but from the python documentation I don't see any way to flush or reset the instance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

つ低調成傷2024-10-08 00:22:28

为什么你认为制作新的效率低下?它是一个小对象,并且对象一直在创建和销毁。使用新的,不用担心。

Why do you think it's inefficient to make a new one? It's a small object, and objects are created and destroyed all the time. Use a new one, and don't worry about it.

下壹個目標2024-10-08 00:22:28

这就是我所做的,只需编写一个小包装器来重新初始化哈希对象。处理代码编写的笨拙,但可能无法处理运行时的效率。

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

Here's what I did, just write a little wrapper that reinitializes the hash object. Handles the clunkiness of the code writing, but maybe not the efficiency at runtime.

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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文