x5t JWT 指纹 Python 转换
x5t JWT Thumbprint Python Conversion
我正在尝试为 header 生成一个 x5t 参数,以使用证书向 Azure 发出请求以进行身份验证。
在此处文档中给出的示例中:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-certificate-credentials,它表示 84E05C1D98BCE3A5421D225B140B36E86A3D5534 的 SHA-1 哈希应该给出 hOBcHZi846VCHSJbFAs26Go9VTQ=
的 x5t 值
当我尝试使用以下方法转换此散列时,我发现 x5t 值为 ODRFMDVDMUQ5OEJDRTNBNTQyMUQyMjVCMTQwQjM2RTg2QTNENTUzNA==
我在转换过程中做错了什么?
import base64
x="84E05C1D98BCE3A5421D225B140B36E86A3D5534"
x5t = base64.b64encode(x.encode()).decode()
print(x)
给定的 SHA-1 哈希
84E05C1D98BCE3A5421D225B140B36E86A3D5534
是一个很长的十六进制数。在您的代码中,您将其视为字符串(例如“84”),但您需要将其解释为字节数组的十六进制表示形式(例如第一个字节为 0x84):
import base64
x = "84E05C1D98BCE3A5421D225B140B36E86A3D5534"
x5t = base64.b64encode(bytearray.fromhex(x))
print(x5t.decode())
结果是:
hOBcHZi846VCHSJbFAs26Go9VTQ=
我正在尝试为 header 生成一个 x5t 参数,以使用证书向 Azure 发出请求以进行身份验证。 在此处文档中给出的示例中:https://docs.microsoft.com/en-us/azure/active-directory/develop/active-directory-certificate-credentials,它表示 84E05C1D98BCE3A5421D225B140B36E86A3D5534 的 SHA-1 哈希应该给出 hOBcHZi846VCHSJbFAs26Go9VTQ=
的 x5t 值当我尝试使用以下方法转换此散列时,我发现 x5t 值为 ODRFMDVDMUQ5OEJDRTNBNTQyMUQyMjVCMTQwQjM2RTg2QTNENTUzNA==
我在转换过程中做错了什么?
import base64
x="84E05C1D98BCE3A5421D225B140B36E86A3D5534"
x5t = base64.b64encode(x.encode()).decode()
print(x)
给定的 SHA-1 哈希
84E05C1D98BCE3A5421D225B140B36E86A3D5534
是一个很长的十六进制数。在您的代码中,您将其视为字符串(例如“84”),但您需要将其解释为字节数组的十六进制表示形式(例如第一个字节为 0x84):
import base64
x = "84E05C1D98BCE3A5421D225B140B36E86A3D5534"
x5t = base64.b64encode(bytearray.fromhex(x))
print(x5t.decode())
结果是:
hOBcHZi846VCHSJbFAs26Go9VTQ=