0

JWK ⇄ محول مفاتيح PEM

قم بتحويل مفاتيح التشفير بين تنسيق JWK وPEM باستخدام Web Crypto API الحقيقي، وخوارزمية فك التشفير/المنحنى/الحجم، وحساب بصمة RFC 7638 JWK.

Buy Me a Coffee at ko-fi.com
جارٍ المعالجة... 0%
مفتاح التحليل
تحويل التنسيق
حساب بصمة الإبهام
تم

النتيجة

تظهر مفاتيح JSON Web Keys (JWK) والمفاتيح المشفرة PEM بشكل تبادلي عبر مكتبات JWT وأدوات TLS وتكوين OAuth/OIDC، ولكن التحويل بين الاثنين يدويًا يعني فك تشفير هياكل DER باستخدام قاعدة 64 أو إعادة تنسيق JSON - من السهل أن تخطئ بمهارة. تقوم هذه الأداة بإجراء التحويل باستخدام Web Crypto API الحقيقي للمتصفح بدلاً من معالجة النص: يتم استيراد كتلة PEM الملصقة باستخدام crypto.subtle.importKey('spki'|'pkcs8', ...) وإعادة تصديرها كـ JWK مع ExportKey('jwk', ...); يتم استيراد JWK الملصق باستخدام importKey('jwk', ...) وإعادة تصديره كـ SPKI أو PKCS8 DER، ثم يتم لفه في رأس PEM الصحيح. نظرًا لأن المتصفح نفسه يتحقق من صحة المادة الرئيسية ويفك تشفيرها، فإن المفتاح المشوه أو تحديد الخوارزمية غير المتطابقة يفشل بصوت عالٍ بدلاً من إنتاج البيانات المهملة بصمت.

الخوارزميات المدعومة هي RSA (RSASSA-PKCS1-v1_5)، وEC على منحنيات P-256/P-384/P-521، و- حيث يقوم المتصفح بتنفيذها - Ed25519 وX25519. لا يزال دعم المتصفح لـ Ed25519/X25519 في Web Crypto غير متسق عبر المحركات، لذلك بدلاً من التخمين من سلسلة وكيل المستخدم، تقوم الأداة بتشغيل مسبار crypto.subtle.generateKey() فعليًا للمنحنى المحدد وتخبرك بوضوح ما إذا كان غير مدعوم هنا، بدلاً من إرجاع نتيجة ملفقة.

يقوم كل تحويل أيضًا بفك تشفير البيانات الوصفية الحقيقية للمفتاح: بالنسبة لمفاتيح RSA، وطول بت المعامل وخوارزمية التجزئة مباشرةً من كائن CryptoKey؛ بالنسبة لمفاتيح EC وOKP، المنحنى المسمى؛ ولكل مفتاح، بصمة RFC 7638 JWK - تجزئة SHA-256 لأعضاء JWK المطلوبين متسلسلين بترتيب معجمي صارم (e/kty/n لـ RSA، crv/kty/x/y لـ EC، crv/kty/x لـ OKP/Ed25519/X25519). بصمة الإبهام هذه هي ما تستخدمه العديد من الأنظمة كمعرف "طفل" للمفتاح، وينتج عن الخطأ في ترتيب الأعضاء تجزئة مختلفة تمامًا، وهو بالضبط نوع الخطأ الذي يتعرض له التنفيذ اليدوي.

نظرًا لأن كل شيء يتم تشغيله من خلال crypto.subtle في علامة تبويب المتصفح الخاص بك، فإن مادة المفتاح الخاص لا تترك جهازك أبدًا - لا يوجد خادم، ولا تحميل، ولا يوجد استدعاء خارجي لواجهة برمجة التطبيقات (API) في أي وقت من عملية التحويل.