从Python中的输入数据更新hashlib

时间:2019-02-19 22:41:58

标签: python sha256 hashlib

我正在尝试找到一种方法,该方法可基于另一个hashlib对象的摘要输出来更新hashlib对象。这听起来令人困惑,但本质上是:

import hashlib

part1 = b'abcdefg'
part2 = b'hijklmnop'

# Normal way
hasher1 = hashlib.sha256()
hasher1.update(part1)
hasher1.update(part2)

# Way I need to do it (different hashlib objects)
hasher2 = hashlib.sha256()
hasher2.update(part1)
hasher3 = hashlib.sha256(hasher2.digest())
hasher3.update(part2)

print(hasher1.digest() == hasher3.digest()) # False, but I wish it was True

我曾希望这两个返回相同的摘要,但事实并非如此。关于如何使用新的hashlib对象“继续”哈希的任何想法?

编辑: 我的问题不清楚,抱歉。我需要能够计算一台计算机上消息块上的哈希,然后将结果哈希发送到第二台计算机,并使用第二个消息块在第二台计算机上“继续”哈希。因此流程如下:

hasher2 = hashlib.sha256()
hasher2.update(part1)
intermediate_result = hasher2.digest()

### send intermediate result over some sort of connection ###

hasher3 = hashlib.sha256(intermediate_result)
hasher3.update(part2)
final_result = hasher3.digest()

因此,由于这部分位于两个软件程序之间的中间位置,因此我无法使用.copy()方法。

0 个答案:

没有答案