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

时间:2017-11-22 03:10:41

标签: python binary decode sha256 hashlib

我正在使用 Python 2 ,并尝试使用hashlib对二进制值执行 sha256。

我变得有点卡住了,因为我对这一切都很陌生但是拼凑在一起:

  

hashlib.sha256(' 0110100001100101011011000110110001101111'.decode('十六进制&#39))。hexdigest()

我相信它会将字符串解释为十六进制,基于将十六进制值('68656c6c6f')替换为上面并返回

  

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

与使用'hello'或'68656c6c6f'的this answer进行比较。

我认为答案在于解码组件,但我找不到二进制的例子'hex'或'utf-8'

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

1 个答案:

答案 0 :(得分:0)

以下是执行您要查找的每个数据转换的代码。这些步骤都可以组合在一起,但在此处分开,以便您可以看到每个值。

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