Dekodowanie i drukowanie tokenu JWT

Szybko zajrzyj do środka w token jwt

Page content

Oto kilka skutecznych metod dekodowania i drukowania tokenów JWT bezpośrednio z wiersza poleceń:

człowiek z dużym ekranem z niezrozumiałymi danymi

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.

Przydatne linki