فك تشفير وطباعة مفتاح JWT
نظرة سريعة داخل عنصر jwt
هناك بعض الطرق الفعّالة لـ فك تشفير 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 لـ تنسيق الناتج.