有没有办法将哈希数据从摘要版本转换为摘要版本

2024-10-03 13:31:12 发布

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

我想从当前使用的库中获取字符串格式的值。你知道吗

现在库返回一个bytes类型的值,但我想以string类型获取它。所以我用字节.解码()转换它,但它给出了一个错误,因为它无法解码某些字符。你知道吗

我深入研究了图书馆的工作原理。结果它使用这个方法来提供一个散列并返回值

hashlib.sha256(data).digest()

价值的一个例子是

b'\xce\xe00-Y\x84M2\xbd\xca\x91\\\x82\x03\xddD\xb3?\xbb~\xdc\

然后我解码出一个错误。你知道吗

所以,有没有办法把它转换回字符串类型,或者我必须创建自己的哈希数据版本,并使用hexdigest()代替。你知道吗

***编辑

举一个错误的实例

b'\xce\xe00-Y\x84M2\xbd\xca\x91\\\x82\x03\xddD\xb3?\xbb~\xdc\x19\x05\x1e\xa3z\xbe\xdf(\xec\xd4r'

返回此错误

*** UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 0: invalid continuation byte

Tags: 字符串类型错误解码xbdx03x82xbb
2条回答

如果该值返回如上所述的摘要

hashlib.sha256(data).digest()

为了得到这个的摘要, 您可以使用以下代码

hex_digest = digest.encode('hex').decode()

示例:

digest = b'\xce\xe00-Y\x84M2\xbd\xca\x91\\\x82\x03\xddD\xb3?\xbb~\xdc'
hex_digest = digest.encode('hex').decode()
print(hex_digest)

u'cee0302d59844d32bdca915c8203dd44b33fbb7edc'

您应该能够使用binacii.hexlify

import binascii
binary_string = b'\xce\xe00-Y\x84M2\xbd\xca\x91\\\x82\x03\xddD\xb3?\xbb~\xdc'
hex_string = binascii.hexlify(binary_string)
print(hex_string)

输出:

b'cee0302d59844d32bdca915c8203dd44b33fbb7edc'

相关问题 更多 >