初级
手写Base64URL编码/解码
未完成
初级参考
完整示例代码供参考,建议自己理解后重新输入
def solve():
from pyodide.http import open_url
from io import StringIO
tokens_csv = open_url("https://data.zuihe.com/dbd/ms-shop/state_02/tokens.csv").read()
import base64
def b64url_encode(s):
return base64.urlsafe_b64encode(s.encode('utf-8')).rstrip(b'=').decode()
def b64url_decode(s):
pad = 4 - len(s) % 4
if pad != 4: s += '=' * pad
return base64.urlsafe_b64decode(s).decode('utf-8')
header = '{"alg":"HS256","typ":"JWT"}'
payload = '{"sub":"1","role":"admin","exp":1748739600}'
enc_h = b64url_encode(header)
enc_p = b64url_encode(payload)
print(f"header encoded: {enc_h}")
print(f"payload encoded: {enc_p}")
print(f"header decoded: {b64url_decode(enc_h)}")
print(f"payload decoded: {b64url_decode(enc_p)}")
print(f"no padding chars: {'=' not in enc_h and '=' not in enc_p}")
示例
输入
solve()
期望输出
header encoded: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9
payload encoded: eyJzdWIiOiIxIiwicm9sZSI6ImFkbWluIiwiZXhwIjoxNzQ4NzM5NjAwfQ
header decoded: {"alg":"HS256","typ":"JWT"}
payload decoded: {"sub":"1","role":"admin","exp":1748739600}
no padding chars: True
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199