Avkoda och skriva ut JWT-token

Kast en snabb titt inuti JWT-token

Sidinnehåll

Här är några effektiva metoder för att dekryptera och skriva ut JWT-token direkt från kommandoraden:

man med en stor skärm med oförståelig information

1. Använda jq

Verktyget jq kan användas för att dekryptera och formatera JWT-token på ett snyggt sätt:

  • Kommandot:

    echo "" | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

    Detta delar upp JWT i dess komponenter (rubrik och nyttolast), dekrypterar dem från Base64 och formaterar dem som JSON.

  • Exempel:

    echo "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c" \
      | jq -R 'split(".") | .[0:2] | map(@base64d) | map(fromjson)'
    

2. Bash-skript

Ett anpassat Bash-skript kan dekryptera JWT-token med hjälp av base64 och jq:

  • Skript:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Spara detta skript i en fil (t.ex. decode_jwt.sh), gör det exekverbart (chmod +x decode_jwt.sh) och kör det med din token som argument.


3. Zsh-funktion

Lägg till följande funktion i din .zshrc-fil för snabb åtkomst:

  • Funktion:
    function jwt() {
        for part in 1 2; do
            b64="$(cut -f$part -d. "
    

Detta dekrypterar rubriken och nyttolasten med OpenSSL och formaterar dem med Pythons json.tool.


4. Använda jwt-cli

Installera verktyget jwt-cli för att enkelt dekryptera JWT:

  • Installation:

    brew tap sgaunet/homebrew-tools
    brew install sgaunet/tools/jwt-cli
    
  • Kommandot:

    jwt-cli decode
    

Detta verktyg stöder också kodning och signering av JWT[2].


5. Minimal ett-radare med OpenSSL

För en snabb lösning utan extra verktyg:

  • Kommandot:
    echo "" | awk -F'.' '{print $1, $2}' | tr ' ' '\n' | base64 -d | python -mjson.tool
    

Detta använder awk för att dela upp token, base64 för dekryptering och Python för att formatera utdata.

Användbara länkar