Python 如何使用Hashlib对二进制值执行SHA-256?

Python 如何使用Hashlib对二进制值执行SHA-256?,python,binary,decode,sha256,hashlib,Python,Binary,Decode,Sha256,Hashlib,我正在使用Python2并试图使用hashlib对二进制值执行sha256。 我有点被卡住了,因为我对这一切都很陌生,但已经拼凑起来了: hashlib.sha256('01101001010110110001101100011111')。解码('hex')).hexdigest() 我相信它将字符串解释为十六进制,其基础是将十六进制值('68656C6F')替换为上述值并返回 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938

我正在使用Python2并试图使用hashlib对二进制值执行sha256。

我有点被卡住了,因为我对这一切都很陌生,但已经拼凑起来了:

hashlib.sha256('01101001010110110001101100011111')。解码('hex')).hexdigest()

我相信它将字符串解释为十六进制,其基础是将十六进制值('68656C6F')替换为上述值并返回

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

与使用“hello”或“68656c6f”进行比较

我认为答案在于解码组件,但我找不到仅二进制“十六进制”或“utf-8”的示例


是否有人能够建议需要更改哪些内容,以便将函数解释为二进制值而不是十六进制值?

以下是执行您正在寻找的每个数据转换的代码。这些步骤都可以合并,但在这里是分开的,因此您可以看到每个值

import hashlib
import binascii

binstr = '0110100001100101011011000110110001101111'
hexstr = "{0:0>4X}".format(int(binstr,2)) # '68656C6C6F'
data = binascii.a2b_hex(hexstr) # 'hello'
output = hashlib.sha256(data).hexdigest()
print output
输出:

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824