طريقة عمل الأداة
إنشاء JWT موقع من JSON باستخدام HMAC أو RSA أو RSA-PSS أو ECDSA.
استخدم المثال لمعرفة صيغة الإدخال والبيانات الوصفية، ثم استبدله بقيمتك.
الخصوصية والاستخدام الآمن
تبقى المعالجة داخل علامة التبويب هذه. قد تستهلك القيم الكبيرة ذاكرة كبيرة من الجهاز.
لا تلصق أسرار الإنتاج أو المفاتيح الخاصة في أداة متصفح. استخدم في الإنتاج مكتبة JWT محدثة وتخزين مفاتيح محمياً على الخادم.
الأخطاء الشائعة التي تشرحها الأداة
- الإدخال فارغ أو تالف أو ليس بالصيغة التي تتوقعها الأداة.
- الوضع المحدد لا يطابق الأبجدية أو نوع الملف أو طريقة التمثيل.
- قد تستنفد القيمة الكبيرة الذاكرة عند وجود النسختين المرمزة والمفكوكة معاً.
- نجاح التحويل لا يثبت أن المحتوى آمن أو موثوق.
أوامر مكافئة
استخدم بيئة التشغيل أو shell المتاح. تحقق من المدخلات غير الموثوقة ولا تطبع البيانات الثنائية مباشرة في الطرفية.
Python
import base64, hashlib, hmac, json
b64 = lambda value: base64.urlsafe_b64encode(value).rstrip(b'=').decode()
body = '.'.join([b64(json.dumps(header, separators=(',', ':')).encode()), b64(json.dumps(payload, separators=(',', ':')).encode())])
token = body + '.' + b64(hmac.new(secret, body.encode(), hashlib.sha256).digest())
JavaScript
import { createHmac } from 'node:crypto';
const b64 = value => Buffer.from(JSON.stringify(value)).toString('base64url');
const body = `${b64(header)}.${b64(payload)}`;
const token = `${body}.${createHmac('sha256', secret).update(body).digest('base64url')}`;
Shell
b64url() { openssl base64 -A | tr '+/' '-_' | tr -d '='; }
body="$(printf '%s' "$HEADER" | b64url).$(printf '%s' "$PAYLOAD" | b64url)"
sig=$(printf '%s' "$body" | openssl dgst -sha256 -mac HMAC -macopt "key:$SECRET" -binary | b64url)