حوّل مفتاح JSON Web Key إلى PEM والعكس لمفاتيح RSA وEC وEd25519، مع البصمة
يعمل في متصفحك. لا يُرسل أي شيء تكتبه إلى أي مكان. تم التحقق في 16 أكتوبر 2026.مفتاح JWK هو مفتاح مكتوب بصيغة JSON، تستخدمه JWT وOAuth وOpenID Connect؛ أما PEM فهو الصيغة النصية بترميز Base64 التي يستخدمها OpenSSL والخوادم. الصق أيًّا منهما فيُحوَّل إلى الآخر، لمفاتيح RSA وEC (P-256 وP-384 وP-521 وsecp256k1) وEd25519، مع بصمة RFC 7638، بالكامل في متصفحك.
تُرجمت هذه الصفحة آليًا من الأصل الإنجليزي. لم يراجع أي شخص هذه الترجمة بعد، لذا فالنسخة الإنجليزية هي التي يُعتمد عليها. اقرأ الأصل الإنجليزي
الصق مفتاح JWK، أو JWK Set من عنوان jwks.json، أو مفتاح PEM أو شهادة.
يُكتشف الاتجاه تلقائيًا: يصبح JWK بصيغة PEM، ويصبح PEM مفتاح JWK.
اختر صيغة PEM، مثل PKCS#8 أو PKCS#1، أو فعّل المفتاح العام فقط لإزالة الجزء الخاص.
انقر على نسخ أو تنزيل؛ تظهر بصمة RFC 7638 لكل مفتاح.
تحمل مفاتيح JSON Web Key وملفات PEM الأرقام نفسها في غلافين مختلفين. يسمّي JWK كل جزء، مثل المعامل "n" والأس "e" لمفتاح RSA أو النقطة "x" و"y" لمفتاح EC، بترميز Base64url. ويحمل ملف PEM القيم نفسها بصيغة DER، الصيغة الثنائية لـ X.509 وOpenSSL، بين سطري BEGIN وEND.
ما الذي يحوّله.
| المفتاح | من JWK إلى PEM | من PEM إلى JWK |
|---|---|---|
| RSA عام | SPKI أو PKCS#1 | PUBLIC KEY، RSA PUBLIC KEY، شهادة |
| RSA خاص | PKCS#8 أو PKCS#1 | PRIVATE KEY، RSA PRIVATE KEY |
| EC P-256، P-384، P-521، secp256k1 | SPKI؛ PKCS#8 أو SEC1 | PUBLIC KEY، PRIVATE KEY، EC PRIVATE KEY |
| Ed25519، Ed448، X25519، X448 | SPKI؛ PKCS#8 | PUBLIC KEY، PRIVATE KEY |
تتحوّل JWK Set التي تضم عدة مفاتيح إلى عدة كتل PEM، وتتحوّل عدة كتل PEM إلى JWK Set واحدة. وتعطي الشهادات وطلبات الشهادات مفتاحها العام.
الصيغ. تعمل SPKI ("PUBLIC KEY") وPKCS#8 ("PRIVATE KEY") مع كل أنواع المفاتيح، وهما ما تتوقعه معظم المكتبات. أما PKCS#1 ("RSA PUBLIC KEY"، "RSA PRIVATE KEY") فهي الصيغة الأقدم الخاصة بـ RSA وحده؛ وSEC1 ("EC PRIVATE KEY") هي صيغة EC الأقدم في OpenSSL.
البصمة. تظهر بصمة RFC 7638 لكل مفتاح: قيمة SHA-256 لحقوله الإلزامية بترتيب ثابت، ويستخدمها كثير من المزوّدين قيمةً لـ "kid". فعّل إضافة kid لوضعها في JWK.
المفاتيح الخاصة. فعّل المفتاح العام فقط لإزالة الحقول الخاصة قبل النشر. وحين لا يحمل المفتاح الخاص جزأه العام، يُحسب باستخدام WebCrypto المدمج في المتصفح. يجب فك تشفير ملفات PEM المحمية بكلمة مرور أولًا.
قورنت النتائج بايتًا ببايت مع Node.js وOpenSSL لكل نوع مفتاح مدعوم، ومع الأمثلة الواردة في RFC 7517 وRFC 7638. لا تُرسل المفاتيح إلى أي مكان، ولا يُخزَّن أي شيء تلصقه.
الصق JWK في المربع فيظهر PEM فورًا: كتلة PUBLIC KEY للمفتاح العام، وكتلة PRIVATE KEY للمفتاح الخاص. يمكنك في مفاتيح RSA التبديل إلى صيغة PKCS#1 الأقدم، وفي مفاتيح EC الخاصة إلى SEC1. وتعطي JWK Set ذات المفاتيح المتعددة كتلة PEM لكل مفتاح.
افتح عنوان jwks.json الخاص بالمزوّد في متصفحك، وانسخ JSON كاملًا والصقه هنا. يصبح كل مفتاح في قائمة keys مفتاحًا عامًا بصيغة PEM، موسومًا بنوعه وحجمه وبصمته، لتطابقه مع kid في ترويسة الرمز (token) الذي تريد التحقق منه.
كلاهما يحمل مفتاح RSA. تحمل PKCS#1، الموسومة RSA PRIVATE KEY أو RSA PUBLIC KEY، أرقام RSA فقط. أما PKCS#8، الموسومة PRIVATE KEY، فتغلّف أي نوع من المفاتيح مع معرّف الخوارزمية، كما تفعل SPKI للمفاتيح العامة. تتوقع معظم المكتبات الحديثة، ومنها Java وNode.js، صيغتي PKCS#8 وSPKI.
معرّف قصير يُحسب من المفتاح نفسه، معرَّف في RFC 7638: تُكتب الحقول الإلزامية، مثل e وkty وn في RSA، بصيغة JSON بترتيب أبجدي دون مسافات، ثم تُجزّأ بـ SHA-256. يحصل المفتاح نفسه دائمًا على البصمة نفسها، لذا تصلح جيدًا قيمةً لـ kid.
يجري التحويل بالكامل في متصفحك؛ لا يُرفع المفتاح ولا يُسجَّل ولا يُخزَّن، وتعمل الصفحة دون اتصال بعد تحميلها. ومع ذلك تعامل مع أي مفتاح خاص بحذر، وفضّل تحويل مفاتيح الاختبار. عند النشر فعّل المفتاح العام فقط حتى لا تظهر الحقول الخاصة في الناتج أبدًا.
يجب أن يتضمن JWK لمفتاح Ed448 أو X448 خاص المفتاحَ العام، وعادةً ما يكتب OpenSSL ملفات PEM هذه دونه. وحسابه يتطلب رياضيات Ed448 لا توفرها المتصفحات. صدّر المفتاح مع جزئه العام، أو حوّل المفتاح العام على حدة.
تتغير المعدلات والقواعد؛ راجع المصدر قبل الاعتماد على أي رقم.
هل ما زلت عالقًا؟ اسأل عن محوّل JWK إلى PEM ويمكن لأي شخص يعرف الإجابة أن يجيب. لا حاجة إلى حساب.