1

给出以下 Python 代码:

bits = [0]*256  # for simplicity (actually it's more like (0|1)^n)
binstr = ""  # make string containing all 'bits'
for el in bits:
    binstr += str(el)

如何获取 bits/binstr 的 sha256 的二进制字符串。(意思是如何实现二进制(sha256(位))。我在使用类似的东西时卡住了:

import hashlib
import binascii

hexstr = "{0:0>4X}".format(int(binstr, 2))
data = binascii.a2b_hex(hexstr)
print(data)
> b'\x00\x00'
output = hashlib.sha256(data).hexdigest()
print(output)
> 96a296d224f285c67bee93c30f8a309157f0daa35dc5b87e410b78630a09cfc7

也许你可以帮助我找出我的错误。

4

1 回答 1

0

可能有一个库函数可以做到这一点,但您可以将十六进制字符串转换为 int,然后将 int 转换为 bin。

bin(int(hashlib.sha256("whatever you want to hash").hexdigest(), 16))
于 2021-05-18T21:28:02.587 回答