فك تشفير وطباعة مفتاح JWT

نظرة سريعة داخل عنصر jwt

Page content

هناك بعض الطرق الفعّالة لـ فك تشفير JWT وطباعته مباشرة من سطر الأوامر:

رجل أمام شاشة كبيرة تحتوي على معلومات غير مفهومة

1. استخدام jq

يمكن استخدام أداة jq لفك تشفير JWT وطباعته بشكل منسق:

  • ال명령:

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

    يقوم هذا الأمر بتقسيم JWT إلى مكوناته (الheader والpayload)، وفك تشفيرها من Base64، وتنسيقها كـ JSON.

  • مثال:

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

2. نسخة Bash

يمكن استخدام نسخة Bash مخصصة لفك تشفير JWT باستخدام base64 و jq:

  • النسخة:

    #!/usr/bin/env bash
    function decode_jwt() {
        IFS='.' read -ra PARTS "
    
  • احفظ هذه النسخة في ملف (مثلاً decode_jwt.sh)، جعلها قابلة للتنفيذ (chmod +x decode_jwt.sh)، واجريها مع وضع مفتورك كحجة.


3. دالة Zsh

أضف الدالة التالية إلى ملف .zshrc للوصول السريع:

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

هذه الدالة تفك تشفير header والpayload باستخدام OpenSSL وتنسقها باستخدام json.tool من Python.


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 لـ تنسيق الناتج.

روابط مفيدة