这个工具如何工作
解码 Header 和 Payload,检查 Claims 有效期,并可选验证签名。
先使用测试样例了解输入格式和结果元数据,再替换成你自己的内容。
隐私与安全使用
所有处理都在当前浏览器标签页完成。特别大的内容仍可能占用较多设备内存。
解码不等于验证。在检查签名、签发者、受众、有效时间和应用规则之前,不能信任 Claims。
这个工具会说明的常见错误
- 输入为空、已经损坏,或者不是这个工具要求的格式。
- 所选模式与 alphabet、文件类型或数据表示方式不匹配。
- 编码文本和解码字节同时存在时,超大内容可能耗尽内存。
- 转换成功不代表解码内容安全、可信或没有恶意代码。
等价命令
可以在已有的运行环境或 Shell 中完成相同操作。应验证不可信输入,避免把二进制数据直接输出到终端。
Python
import base64, json
h, p, s = token.split('.')
decode = lambda value: json.loads(base64.urlsafe_b64decode(value + '=' * (-len(value) % 4)))
print(decode(h), decode(p))
JavaScript
const [header, payload] = token.split('.');
const decode = value => JSON.parse(Buffer.from(value, 'base64url').toString('utf8'));
console.log(decode(header), decode(payload));
Shell
IFS=. read -r header payload signature <<EOF
$TOKEN
EOF
printf '%s' "$payload" | basenc --base64url --decode