使用SHA-256在Python中处理字节

使用SHA-256在Python中处理字节,python,function,hash,cryptography,sha,Python,Function,Hash,Cryptography,Sha,所以我想使用SHA-256解决一个特定的问题:从bytearray计算摘要,然后将得到的摘要连接到另一个字节块(对于这个问题是1024字节块),并为连接的值计算摘要 例如: 以下是我的两个字节块: from hashlib import sha256 rawhex4 = b'\x44'*773 rawhex3 = b'\x33'*1024 h = sha256() h.update(rawhex4) aux = h.digest() 本hexdigest为:d8f8a9eadd284c4db

所以我想使用SHA-256解决一个特定的问题:从bytearray计算摘要,然后将得到的摘要连接到另一个字节块(对于这个问题是1024字节块),并为连接的值计算摘要

例如:

以下是我的两个字节块:

from hashlib import sha256
rawhex4 = b'\x44'*773
rawhex3 = b'\x33'*1024

h = sha256()
h.update(rawhex4)
aux = h.digest()
本hexdigest为:d8f8a9eadd284c4dbd94af448fefb24940251e75ca2943df31f7cfbb6a4f97ed

然后我想把这个32字节的摘要连接到我的下一个块并对它进行散列,但我没有得到正确的答案。我做了以下工作:

h.update(rawhex3 + aux)
我知道对rawhex3+hash(rawhex4)进行哈希运算会得到以下摘要:

26949e3320c315f179e2dfc95a4158dcf9a9f6ebf3dfc69252cd83ad274eeafa


我会错过什么?我对Python非常陌生

您正在重用已经包含
rawhex4
中位的哈希对象。 如果您创建一个新的,您将得到您的
26..fa
结果。

尝试以下操作:

from hashlib import sha256
rawhex4 = b'\x44'*773
rawhex3 = b'\x33'*1024

h1 = sha256()
h1.update(rawhex4)
aux = h1.digest()

h2 = sha256()
h2.update(rawhex3 + aux)
print h2.hexdigest()

很好的解释。如果你觉得有必要的话,偷我的代码作为例子;过一会儿我会删除我的答案。哇,我以为用h.update()清除了散列函数,所以我认为我的问题在于连接字节。。。无法看到简单的解决方案。。。谢谢