我有缓存的哈希实例:
m1 = hashlib.md5()
m1.update(b'very-very-long-data')
cached_sum = m1
我想用之前缓存的总和更新外部哈希:
def append_cached_hash(external_hasher):
# something like this
external_hasher.update(cached_sum)
不幸的是,它不起作用,因为 update() 需要字节。我可以再次传递相同的“非常非常长的数据”字节,但它拒绝为常见的长数据对象预缓存 md5 总和的整个想法。
我可以执行以下操作:
external_hasher.update(cached_sum.hexdigest())
但是,它不会产生与以下相同的所需结果:
external_hasher.update(b'very-very-long-data')
我怎样才能实现上面的功能?
同一个问题可以用不同的方式表述。有 3 个大数据集,有必要使用 python 为所有可能的组合计算 md5 和。允许为每个数据源计算一次 md5。
m1 = hashlib.md5(b'very-big-data-1')
m2 = hashlib.md5(b'very-big-data-2')
m3 = hashlib.md5(b'very-big-data-3')
下面打印函数的第二个参数应该写什么来达到目的?
print("sum for data 1 and data 2 is:", m1.update(m2))
print("sum for data 1 and data 3 is:", m1.update(m3))
print("sum for data 2 and data 3 is:", m2.update(m3))
print("sum for data 1, data 2 and data 3 is:", m1.update(m2.update(m3)))
在此先感谢您的帮助!