十六进制字符串到base64url编码/解码

十六进制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)

你可能感兴趣的:(python,base64url)