在Python中使用SHA256处理字节

2024-10-01 13:34:09 发布

您现在位置:Python中文网/ 问答频道 /正文

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

例如:

以下是我的两个字节块:

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

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

此十六进制摘要为:D8F8A9EADD284C4DBD94AF448FEFB24940251E75CA2943DF31F7CFBBB6A4F97ED

然后,我想将这个32字节的摘要连接到下一个块,并对其进行哈希处理,但我没有得到正确的答案。我做以下工作:

^{pr2}$

我知道hashing rawhex3+hash(rawhex4)会给我这个摘要:

26949e3320c315f179e2dfc95a4158dcf9a9f6ebf3dfc69252cd83ad274eeafa

我能错过什么?我对Python很陌生


Tags: fromimport字节updatehashlibshadigestsha256
2条回答

您正在重用hash对象,该对象已包含来自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()

相关问题 更多 >