如何使用Hashlib对二进制值执行SHA256?

2024-04-25 20:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我有点卡住了,因为我对这一切都很陌生,只是凑合在一起:

hashlib.sha256('0110100001100101011011000110110001101111’.decode('hex')).hexdigest()

我相信它将字符串解释为十六进制,它将十六进制值('68656c6f')替换为上面的值,然后返回

2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

并与使用“hello”或“68656c6f”的this answer进行比较。在

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

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


Tags: 字符串答案answerhello二进制组件this解码
1条回答
网友
1楼 · 发布于 2024-04-25 20:34:28

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

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

相关问题 更多 >