Dekodowanie i drukowanie tokenu JWT
Szybko zajrzyj do środka w token jwt
Oto kilka skutecznych metod dekodowania i drukowania tokenów JWT bezpośrednio z wiersza poleceń:
1. Używanie jq
Narzędzie jq
może być używane do dekodowania i prezentowania tokenów JWT w przejrzysty sposób:
-
Polecenie:
echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
To dzieli token JWT na jego komponenty (nagłówek i ładunek), dekoduje je z Base64 i formatuje jako JSON.
-
Przykład:
echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \ | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
2. Skrypt Bash
Własny skrypt Bash może dekodować tokeny JWT za pomocą base64
i jq
:
-
Skrypt:
#!/usr/bin/env bash function decode_jwt() { IFS='.' read -ra PARTS "
-
Zapisz ten skrypt do pliku (np.
decode_jwt.sh
), ustaw prawa do wykonywania (chmod +x decode_jwt.sh
) i uruchom go z tokenem jako argument.
3. Funkcja Zsh
Dodaj poniższą funkcję do pliku .zshrc
dla szybkiego dostępu:
- Funkcja:
function jwt() { for part in 1 2; do b64="$(cut -f$part -d. "
Ta funkcja dekoduje nagłówek i ładunek za pomocą OpenSSL i formatuje je za pomocą json.tool
z Pythona.
4. Używanie jwt-cli
Zainstaluj narzędzie jwt-cli
, aby łatwo dekodować JWT:
-
Instalacja:
brew tap sgaunet/homebrew-tools brew install sgaunet/tools/jwt-cli
-
Polecenie:
jwt-cli decode
To narzędzie obsługuje również kodowanie i podpisywanie JWT[2].
5. Minimalny jednowierszowy skrypt z OpenSSL
Dla szybkiego rozwiązania bez dodatkowych narzędzi:
- Polecenie:
echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
To wykorzystuje awk
, aby podzielić token, base64
, aby zdekodować, oraz Pythona, aby sformatować wynik.