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

时间:2016-04-08 02:11:33

标签: 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是:d8f8a9eadd284c4dbd94af448fefb24940251e75ca2943df31f7cfbb6a4f97ed

然后我想将这个32字节的摘要连接到我的下一个块并散列它但我得不到正确的答案。我做了以下事情:

h.update(rawhex3 + aux)

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

26949e3320c315f179e2dfc95a4158dcf9a9f6ebf3dfc69252cd83ad274eeafa

我能错过什么?我是Python的新手

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

试试这个:

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()