解码并打印JWT令牌
快速查看 jwt 令牌内部结构
目录
以下是直接从命令行解码和打印 JWT 令牌的一些有效方法:
1. 使用 jq
jq
工具可用于解码并美化打印 JWT 令牌:
-
命令:
echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
该命令将 JWT 分割成其组成部分(头部和负载),从 Base64 解码,并将其格式化为 JSON。
-
示例:
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \ | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
2. Bash 脚本
一个自定义的 Bash 脚本可以使用 base64
和 jq
来解码 JWT 令牌:
-
脚本:
#!/usr/bin/env bash function decode_jwt() { IFS='.' read -ra PARTS "
-
将此脚本保存到文件中(例如
decode_jwt.sh
),使其可执行(chmod +x decode_jwt.sh
),然后使用令牌作为参数运行。
3. Zsh 函数
将以下函数添加到 .zshrc
文件中,以便快速访问:
- 函数:
该函数使用 OpenSSL 解码头部和负载,并使用 Python 的
function jwt() { for part in 1 2; do b64="$(cut -f$part -d. "
json.tool
进行格式化。
4. 使用 jwt-cli
安装 jwt-cli
工具可以轻松解码 JWT:
-
安装:
brew tap sgaunet/homebrew-tools brew install sgaunet/tools/jwt-cli
-
命令:
jwt-cli decode
此工具还支持编码和签名 JWT[2]。
5. 使用 OpenSSL 的最小单行命令
对于没有额外工具的快速解决方案:
- 命令:
该命令使用
echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
awk
分割令牌,使用base64
解码,并使用 Python 格式化输出。