问题描述
我正在尝试获取十六进制值的 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)