在 python 中将字节字符串转换为十六进制字符串

Convert a byte string to hexadecimal string in python

我正在从事一个大量使用 AWS 签名的项目。现在我的任务是找到一种方法,通过 JSON 将 SHA256 哈希字节“字符串”发送到客户端。给定的“字符串”如下所示:

b'\xd2\x99Q\xb5^\x89\x99\xc3\xa7\\x98.\x00\x87\xaf`|E\xd2\xc9:B)\xc5\xfe\x869X\xd1\xc5K\xb4'

是的,我正在使用 python。该“字符串”是将字节字符串编码为 utf-8,然后使用 SHA256 对其进行哈希处理的产物。我什至不知道如何调用它,但我需要以某种方式将它转换为普通字符串,这样我就可以将它转储到 JSON 中。转换后应该如下所示:

d7fd3471194dedeafcb7b5ca17daa05e01ffcafa41227fa7d3d82ec0bdeacc8f

注意上面的字符串不是转换后的结果,我只是附上了它,以便大家更好地理解问题。

我试过用base64编码,但之后无法解码。简而言之,我很困在这里。非常感谢任何帮助。

你要找的是.hex()方法:

>>> s = b'\xd2\x99Q\xb5^\x89\x99\xc3\xa7\\x98.\x00\x87\xaf`|E\xd2\xc9:B)\xc5\xfe\x869X\xd1\xc5K\xb4'
>>> s.hex()
'd29951b55e8999c3a75c982e0087af607c45d2c93a4229c5fe863958d1c54bb4'