如何在 python 3 中将十六进制输入给 SHA256?

How to give hexadecimal input to SHA256 in python 3?

我正在尝试获取十六进制值的 SHA256 输出,但只能提供字符串输入。 我使用的 Python 3 代码如下

from hashlib import sha256
hash = sha256(b'0x01')
hx=hash.hexdigest()
print('hx: ', hx)

我得到了什么

hx:  b51c80e50d664f281fedd07ba902a21caadc0c7e0b491ece679497391e9f84cf

我期待的

hx:  4bf5122f344554c53bde2ebb8cd2b7e3d1600ad631c385a5d7cce23c7785459a

预期输出来自在线工具SHA256 Online,输入类型为十六进制。

使用bytes.fromhex()将十六进制字符串转换为字节:

from hashlib import sha256
hash = sha256(bytes.fromhex('01'))
hx = hash.hexdigest()
print('hx: ', hx)