JWT-Token entschlüsseln und drucken

Schnell einen Blick in den JWT-Token werfen

Inhaltsverzeichnis

Hier sind einige effektive Methoden, um JWT-Tokens decoding und printing JWT tokens direkt von der Kommandozeile aus zu decodieren und zu drucken:

Mann mit einem großen Bildschirm mit unverständlichen Dingen

1. Verwendung von jq

Das Tool jq kann verwendet werden, um JWT-Tokens zu decodieren und schön zu formatieren:

  • Befehl:

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

    Dies teilt den JWT in seine Komponenten (Header und Payload) auf, decodiert sie aus Base64 und formatiert sie als JSON.

  • Beispiel:

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

2. Bash-Skript

Ein benutzerdefiniertes Bash-Skript kann JWT-Tokens mit base64 und jq decodieren:

  • Skript:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • Speichern Sie dieses Skript in eine Datei (z. B. decode_jwt.sh), machen Sie es ausführbar (chmod +x decode_jwt.sh) und führen Sie es mit Ihrem Token als Argument aus.


3. Zsh-Funktion

Fügen Sie die folgende Funktion zu Ihrer .zshrc-Datei hinzu, um schnellen Zugriff zu ermöglichen:

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

Diese Funktion decodiert den Header und die Payload mit OpenSSL und formatiert sie mit Python’s json.tool.


4. Verwendung von jwt-cli

Installieren Sie das Tool jwt-cli, um JWTs einfach zu decodieren:

  • Installation:

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

    jwt-cli decode 
    

Dieses Tool unterstützt auch das Codieren und Signieren von JWTs[2].


5. Minimaler Einzeiler mit OpenSSL

Für eine schnelle Lösung ohne zusätzliche Tools:

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

Dieser Befehl verwendet awk, um den Token zu teilen, base64, um ihn zu decodieren, und Python, um das Ausgabeformat zu formatieren.