十六进制hex字符串转base64url字符串
import base64
import binascii
def base64url_encode(data):
# 使用 Base64 编码函数进行编码
encoded = base64.urlsafe_b64encode(data)
# 将编码结果转换为字符串,并移除末尾的填充字符 "="
encoded_str = encoded.decode('utf-8').rstrip('=')
return encoded_str
# 十六进制字符串
#hex_string = "B6592010017816E0"
hex_string = "E0167801102067F9"
# 将十六进制字符串转换为二进制数据
binary_data = binascii.unhexlify(hex_string)
# 调用 base64url_encode 函数进行编码
base64url_encoded = base64url_encode(binary_data)
# 打印编码结果
print(base64url_encoded)
base64url字符串转十六进制hex字符串
import base64
import binascii
def base64url_decode(encoded_str):
# 将Base64URL编码的字符串添加填充字符 "="
padding = (4 - len(encoded_str) % 4) % 4
encoded_str += "=" * padding
# 将编码字符串转换为二进制数据
encoded = encoded_str.encode('utf-8')
# 使用Base64解码函数进行解码
decoded = base64.urlsafe_b64decode(encoded)
# 将解码结果转换为十六进制字符串
hex_string = binascii.hexlify(decoded).decode('utf-8')
return hex_string
# Base64URL编码的字符串
#base64url_encoded = "4BZ4AQhY8vo" #e01678010858f2fa
#base64url_encoded = "AAAi" #000022
base64url_encoded = "jCTGuKiLQ0krdZtN_TjQpA" #8c24c6b8a88b43492b759b4dfd38d0a4
# 调用base64url_decode函数进行解码
hex_string = base64url_decode(base64url_encoded)
# 打印解码结果
print(hex_string)