所以我想使用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的新手
答案 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()