أداة داخل المتصفح

ترميز JWT وتوقيعه

إنشاء JWT موقع من JSON باستخدام HMAC أو RSA أو RSA-PSS أو ECDSA.

معالجة محلية · دون رفع · دون حساب

يستخدم HS سراً؛ وتتطلب RS وPS وES مفتاح PEM PKCS#8 خاصاً.

لا تلصق أسرار الإنتاج أو المفاتيح الخاصة في أداة متصفح. استخدم في الإنتاج مكتبة JWT محدثة وتخزين مفاتيح محمياً على الخادم.

طريقة عمل الأداة

إنشاء 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)

المعايير والمراجع الرسمية