Skip to content

مولّد أزواج مفاتيح RSA مجاني عبر الإنترنت

ولّد زوج مفاتيح RSA عبر الإنترنت مجاناً — المفتاح الخاص لا يغادر متصفحك. RSA 2048/4096 وECDSA وEd25519 بصيغة PKCS#8 أو PKCS#1، مع JWK وبصمة SHA-256.

بدون تتبّع يعمل في المتصفّح مجاني
تُولَّد أزواج المفاتيح داخل متصفحك عبر Web Crypto API، ولا يُصدَر أي طلب شبكة أثناء التوليد. اقطع الاتصال وستظل هذه الصفحة تعمل.

الافتراضي الحديث هو PKCS#8 (BEGIN PRIVATE KEY) وهو ما يتوقعه JDK. أما PKCS#1 (BEGIN RSA PRIVATE KEY) فهي الصيغة التقليدية في OpenSSL ولا تزال بعض البوابات تشترطها. والتبديل يعيد ترميز المفتاح نفسه.

احتفظ به سراً. من يملكه يستطيع انتحال هويتك.

بصمة المفتاح العام — SHA-256 لبنية SPKI بترميز DER
صيغة JWK (JSON Web Key)
JWK الخاص — لا تنشره أبداً
 
المفتاح العام بصيغة JWK
 

ولّد النوع نفسه من أزواج المفاتيح من سطر الأوامر

روجِع للتأكد من صحة RFC 5958/5208 (PKCS#8) وRFC 8017 (PKCS#1) وRFC 8410 (Ed25519) وترميز PEM وفق RFC 7468، ومن سلوك Web Crypto API عبر RSA وECDSA وEd25519. — فريق أدوات أمان Go Tools · Aug 10, 2026

يتحقّق فريقنا من تحويل PKCS#8 إلى PKCS#1 بايتاً بايتاً مقابل مخرجات مرجعية من وحدة crypto في Node، فالمفتاح المصدَّر هنا مطابق تماماً لما ينتجه OpenSSL للمادة نفسها.

ما هو مولّد مفاتيح RSA؟

ينتج مولّد مفاتيح RSA زوجاً مرتبطاً رياضياً: مفتاح خاص تحتفظ به لنفسك، ومفتاح عام توزّعه على غيرك. كل ما يُوقَّع بالنصف الخاص يمكن التحقق منه بالنصف العام، والنصف العام وحده آمن للنشر. وعدم التماثل هذا هو جوهر الفكرة كلها — فهو ما يتيح للمتحقّق أن يفحص تواقيعك دون أن يكتسب القدرة على تزويرها، وهو ما لا يقدّمه مفتاح سري مشترك أبداً.

يعمل هذا المولّد داخل متصفحك عبر Web Crypto API، فيُنشأ المفتاح الخاص في التبويب ولا تُصدر الصفحة أي طلب شبكة أثناء التوليد. وإلى جانب RSA ينتج أيضاً أزواج ECDSA وEd25519، وهي تخدم الغرض نفسه بمفاتيح أقصر بكثير: مفتاح Ed25519 الخاص 48 بايتاً في PKCS#8، بينما يتجاوز مفتاح RSA بطول 2048 بت 1.2 كيلوبايت.

وما يربك الناس ليس الرياضيات بل التغليف. يمكن كتابة المفتاح نفسه بصيغة PKCS#8 أو PKCS#1 أو SPKI أو JWK، والمكتبة التي ترفض إحداها كثيراً ما تقبل أخرى دون رسالة أوضح من «فشل التحليل». والجدول أدناه يربط كل حاوية بالمنظومات التي تتوقعها.

// Verify a downloaded key pair matches, using OpenSSL:
openssl pkey -in rsa-2048-private.pem -pubout | diff - rsa-2048-public.pem
// No output means the public key really belongs to that private key.

الميزات الرئيسية

يُولَّد داخل متصفحك

تأتي المفاتيح من Web Crypto API في تبويبك أنت، ولا تُصدر الصفحة أي طلب شبكة أثناء التوليد. اقطع اتصالك وستواصل العمل، وهذا يبيّن أن الأداة لا تحتاج خادماً لتؤدي مهمتها.

RSA وECDSA وEd25519

RSA بأحجام 2048 و3072 و4096؛ وECDSA على المنحنيات P-256 وP-384 وP-521؛ وEd25519 — كلها من صفحة واحدة وبخيارات التصدير نفسها.

إخراج PKCS#8 وPKCS#1

بدّل بين ترويسة BEGIN PRIVATE KEY والبنية التقليدية BEGIN RSA PRIVATE KEY دون لمس OpenSSL. ويعيد المبدّل ترميز المفتاح المعروض على الشاشة، فيبقى المفتاح نفسه.

تصدير JWK

النصفان متاحان بصيغة JSON Web Key. وJWK العام هو ما يوضع في وثيقة JWKS أو مُتحقّق JOSE؛ أما JWK الخاص فهو لموقّعك وحده ويجب ألا يُنشر أبداً.

بصمة SHA-256

يأتي كل زوج ببصمة لمفتاحه العام كي تتحقق عبر قناة منفصلة من أن الطرفين يحملان المفتاح نفسه.

أوامر OpenSSL مطابقة

تُعرض تحت المخرجات الأوامر المكافئة لتوليد النوع نفسه من المفاتيح محلياً، فتنتقل إلى سطر الأوامر متى فضّلت ذلك.

تنزيلات بأسماء معقولة

تُحفظ الملفات باسمَي rsa-2048-private.pem وrsa-2048-public.pem بدل اسم تنزيل عام تضطر إلى تغييره.

بلا حساب وبلا حدّ معدّل

لا يوجد خادم في المعادلة، فلا شيء تسجّل فيه ولا حصة تستنفدها.

أمثلة محلولة

زوج Ed25519 معروضاً كاملاً

Algorithm: Ed25519
-----BEGIN PRIVATE KEY-----
MC4CAQAwBQYDK2VwBCIEIA2HJVU1qChbOJN8XksXVhyD0IjYVt0UU6Mwz814rOFf
-----END PRIVATE KEY-----

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAV5uB7UaPJrtncx3SXNtNzn1ZXjF1ApwvzBZ8nFzT5eU=
-----END PUBLIC KEY-----

مفتاح Ed25519 الخاص 48 بايتاً في PKCS#8، والعام 44 بايتاً، لذا يحمل كل PEM سطراً واحداً من base64. وهذا زوج توضيحي يُتخلَّص منه — ولّد زوجك بنفسك بدل نسخه.

ترويسة PKCS#8 تختلف عن PKCS#1

Algorithm: RSA 2048, structure toggled
PKCS#8:  -----BEGIN PRIVATE KEY-----
PKCS#1:  -----BEGIN RSA PRIVATE KEY-----

المفتاح نفسه بغلافين. تضيف PKCS#8 مُعرّف خوارزمية حول بنية RSA، ولهذا تصلح لكل الخوارزميات بينما لا توجد PKCS#1 إلا لـRSA. وتبديل المفتاح يعيد ترميز المفتاح المعروض على الشاشة، فلا تتغيّر البصمة.

مفتاح RSA 2048 العام

Algorithm: RSA 2048
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni
eSccN1uleXFRBb1g2TN6bk/fbpPCGDyh71m73oB9Bk8+fKVkSThXyWTtpgblB7pX
iQBtTvSWVZGHprkLgMGkU2Yw8Z43m1WpoRuYyXNFe92S5viIdVuKTj/VEUuEpzHd
ffWMIUw70LaUdTP04iQdkNVeS3M6VHkpTwsPSQfsFSwObtLVNy2Lf+ODwJRqCk2r
C749hgKqBdJqkcIj49R7UP4SMQ/9V3yy8DFMrIcgsjC4tHwlQSCGeXNxTNlapGSa
ke55LUR83FASryVJRbUs678SCZSFkyGcT0qLZ/olu/e7Jj2lB0Qy/SJawkrs9hPE
4QIDAQAB
-----END PUBLIC KEY-----

البادئة MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A هي مُعرّف خوارزمية rsaEncryption، وبها تتعرّف على مفتاح RSA بصيغة SPKI بمجرد النظر.

المفتاح العام بصيغة JWK

Algorithm: Ed25519, JWK panel
{
  "key_ops": [
    "verify"
  ],
  "ext": true,
  "alg": "Ed25519",
  "crv": "Ed25519",
  "x": "V5uB7UaPJrtncx3SXNtNzn1ZXjF1ApwvzBZ8nFzT5eU",
  "kty": "OKP"
}

هذا هو التصدير حرفياً، بما فيه العنصران key_ops وext اللذان يضيفهما Web Crypto دائماً. ومدخلة JWKS لا تريدهما — احذف كليهما، وأضف kid وuse بدلاً منهما كي يستطيع المتحقّقون اختيار المفتاح الصحيح أثناء التدوير. يقع Ed25519 ضمن نوع المفاتيح OKP، بينما تظهر مفاتيح RSA بالنوع RSA مع العنصرين n وe.

بصمة SHA-256

Algorithm: Ed25519
SHA256(SPKI) = KAXVxapxpG4zLsTVMpPafovT+X1NLWc8fsOXqtrb59o=

تجزئة SHA-256 لبنية المفتاح العام، قصيرة بما يكفي لقراءتها عبر الهاتف. ولاحظ أنها ليست القيمة التي يطبعها ssh-keygen — إذ يجزّئ OpenSSH صيغته السلكية الخاصة به، فلا يتطابق الاثنان أبداً للمفتاح نفسه.

كيفية استخدام مولّد مفاتيح RSA

  1. 1

    اختر الخوارزمية

    يغطي RSA أوسع مدى من الأنظمة القديمة. ويمنح ECDSA قوة مكافئة بمفاتيح أصغر بكثير. أما Ed25519 فهو الافتراضي الحديث لأي عمل توقيع جديد.

  2. 2

    اختر حجم المفتاح

    يفي RSA 2048 بالإرشادات الحالية، ويضيف 3072 و4096 هامشاً للمفاتيح طويلة العمر. ويوفّر ECDSA المنحنيات P-256 وP-384 وP-521. أما Ed25519 فله حجم واحد ثابت.

  3. 3

    اختر بنية PEM

    تُصدر PKCS#8 ترويسة BEGIN PRIVATE KEY وتعمل في كل مكان تقريباً، بما في ذلك JDK. ولا تنتقل إلى PKCS#1 إلا حين يطلب نظام ما ترويسة BEGIN RSA PRIVATE KEY تحديداً.

  4. 4

    انسخ النصفين أو نزّلهما

    يذهب المفتاح الخاص إلى مدير الأسرار لديك، ويذهب المفتاح العام إلى من يتحقّق من تواقيعك. لا ترسل النصف الخاص إلى أي جهة أبداً.

  5. 5

    تحقّق من البصمة

    قارن بصمة SHA-256 عبر قناة منفصلة لتتأكد أن الطرف الآخر ثبّت المفتاح العام الذي ولّدته فعلاً.

أخطاء شائعة في صيغة المفاتيح

لصق المفتاح العام في موضع المفتاح الخاص

يحتاج التوقيع النصف الخاص. والمكتبة التي تتلقى BEGIN PUBLIC KEY بينما تنتظر مفتاحاً خاصاً تبلّغ عادةً عن خطأ تحليل غير مفيد بدل تسمية المشكلة الحقيقية.

✗ خطأ
-----BEGIN PUBLIC KEY-----
✓ صحيح
-----BEGIN PRIVATE KEY-----

بنية PEM غير مناسبة للمكتبة

قليل من المنظومات لا يقرأ إلا البنية التقليدية لـRSA — مخرجات OpenSSL بخيار -traditional، وبعض حزم تطوير بوابات الدفع، وأدوات Ruby وPerl القديمة. أما معظم المكتبات الحديثة، وJDK على وجه الخصوص، فتتوقع PKCS#8. بدّل بنية PEM من المفتاح في الأعلى بدل البحث عن أمر تحويل.

✗ خطأ
-----BEGIN RSA PRIVATE KEY-----
✓ صحيح
-----BEGIN PRIVATE KEY-----

فقدان سطر جديد في النهاية

تنتهي ملفات PEM بسطر جديد بعد الفاصل الأخير. والنسخ عبر حقل نموذج يقصّ المسافات ينتج ملفاً ترفضه بعض المحلّلات رفضاً تاماً — ولأن المحرف الناقص غير مرئي، يبدو الملف سليماً في المحرّر.

✗ خطأ
-----END PRIVATE KEY-----[EOF]
✓ صحيح
-----END PRIVATE KEY-----↵[EOF]

محرف ضاع في الطريق

ما يكسر PEM هو محرف مفقود أو مُقحَم أو مُستبدَل، لا عرض السطر — فمعظم المحلّلات تقبل أي لفّ. والنسخ عبر عميل محادثة أو حقل نموذج قد يحوّل فاصل سطر إلى مسافة بصمت، ولا يعطي base64 أي تلميح عن المحرف الذي أخطأ؛ يفشل تحميل المفتاح فحسب. استخدم زر النسخ بدل التحديد باليد.

✗ خطأ
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni eSccN1uleXFRBb1g2TN6bk
✓ صحيح
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtuvUHLjyK9zje2aaNIni
eSccN1uleXFRBb1g2TN6bk

استخدام مفتاح HS256 السري حيث الإعداد RS256

يأخذ HS256 مفتاحاً سرياً مشتركاً واحداً، بينما يأخذ RS256 زوج مفاتيح. وتمرير سلسلة نصية عشوائية إلى موقّع RS256 يفشل عند خطوة التحليل. ولّد الزوج هنا، أو استخدم مولّد مفتاح JWT السري إن كنت تقصد HS256.

✗ خطأ
alg: RS256, key: 8f3a9c2e1b7d
✓ صحيح
alg: RS256, key: -----BEGIN PRIVATE KEY-----

لصق PEM في authorized_keys

مفتاح SSH العام هو صيغة OpenSSH ذات السطر الواحد ssh-ed25519 AAAA…، لا كتلة PEM، فلصق المفتاح العام من هذه الصفحة في authorized_keys لن يعمل. ومع مفتاح RSA يمكنك اشتقاق السطر الصحيح محلياً بـssh-keygen -y؛ أما للوصول عبر SSH عموماً فالتوليد على الجهاز الهدف أفضل.

✗ خطأ
-----BEGIN PUBLIC KEY-----
✓ صحيح
ssh-keygen -y -f rsa-2048-private.pem > id_rsa.pub

من يستخدم هذه الأداة

توقيع رموز JWT بـRS256 أو EdDSA
تحتاج خوارزميات JWT غير المتماثلة زوج مفاتيح بدل مفتاح سري مشترك. وقّع بالمفتاح الخاص، وانشر المفتاح العام، فلا يحمل المتحقّقون شيئاً يتيح لهم سكّ الرموز. يقبل منشئ JWT لدينا المفاتيح التي تنتجها هذه الصفحة.
توقيع الـwebhooks والإصدارات
انشر المفتاح العام مرة واحدة، ووقّع كل حمولة بالمفتاح الخاص، فيتحقق المستهلكون من الأصالة دون اعتماد مشترك قابل للتسريب.
التطوير المحلي والاختبارات
تحتاج مجموعات الاختبار التي تفحص التحقق من التواقيع زوج مفاتيح يُتخلَّص منه. وتوليده هنا أسرع من تذكّر صيغة أمر OpenSSL.
معرفة شكل زوج المفاتيح
التنقّل بين الخوارزميات وبنى PEM جنباً إلى جنب يجعل الفروق ملموسة بصورة لا تحققها قراءة المواصفة.
تجهيز نقطة نهاية JWKS
يندرج JWK العام مباشرةً في مصفوفة keys ضمن وثيقة اكتشاف OpenID Connect. أضف kid كي يستطيع المتحقّقون اختياره أثناء التدوير، وأبقِ JWK الخاص خارج ذلك الملف.
الانتقال بعيداً عن RSA
ولّد بديل Ed25519 إلى جانب أصل RSA وقارن الأحجام قبل أن تلتزم بالتغيير.
إصلاح عدم تطابق الصيغة
حين ترفض مكتبة مفتاحاً بخطأ تحليل، تكون إعادة إصداره بالبنية الأخرى من PEM هي الحل كاملاً في الغالب.

صيغ PEM وكيف يعمل المولّد

أي حاوية تُستخدم أين
مفتاح واحد وخمس عبوات. واختيار العبوة الخطأ هو السبب الأشيع لرفض مفتاح، ونادراً ما تكون رسالة الخطأ أدقّ من «فشل التحليل».
الحاويةترويسة PEMما تحملهأين تصادفها
PKCS#8BEGIN PRIVATE KEYأي خوارزميةWeb Crypto وJDK وGo و.NET — معظم المكتبات الحديثة
PKCS#1BEGIN RSA PRIVATE KEYRSA فقطمخرجات OpenSSL التقليدية، وبعض بوابات الدفع، وأدوات Ruby وPerl القديمة
SPKI / X.509BEGIN PUBLIC KEYأي خوارزمية، النصف العامالمفتاح العام الذي تتوقعه كل المكتبات تقريباً
PKCS#1 العامBEGIN RSA PUBLIC KEYRSA فقط، النصف العامأدوات RSA القديمة
JWKلا ترويسة — فهي JSONأي خوارزميةنقاط نهاية JWKS، واكتشاف OIDC، ومكتبات JOSE
ولتحويل ملفات موجودة لديك، يمضي openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pem في اتجاه، ويمضي openssl rsa -traditional -in pkcs8.pem -out pkcs1.pem في الاتجاه الآخر.
العشوائية تأتي من نظام التشغيل
تبذر Web Crypto توليد المفاتيح من مصدر إنتروبيا المنصّة — getrandom على Linux، ومولّد النظام العشوائي الآمن تعمويّاً على Windows وmacOS. وهو الصنف نفسه من المصادر التي يسحب منها OpenSSL، لا مولّد عشوائي زائف مكتوب بـJavaScript.
التوليد لا يجمّد الصفحة
دالة crypto.subtle.generateKey لا تزامنية، وفي محرّكات المتصفحات الكبرى يجري البحث عن الأعداد الأولية خارج المسار الرئيسي، فتبقى الواجهة مستجيبة أثناء إيجاد معامل قياس بطول 4096 بت. وتعرض الصفحة مؤشر انتظار على أي حال، لأن مدة ذلك البحث تتوقف على حظ السحب.
PKCS#8 تغلّف PKCS#1
بنية PrivateKeyInfo في PKCS#8 هي رقم إصدار ومُعرّف خوارزمية وسلسلة ثُمانيات (OCTET STRING). ومع مفتاح rsaEncryption غير مُعمّى، تحتوي تلك السلسلة على بنية RSAPrivateKey كاملة بصيغة PKCS#1، وهكذا تحوّل هذه الصفحة بين الاثنتين دون إعادة اشتقاق أي شيء.
المفاتيح العامة تستخدم SubjectPublicKeyInfo
ترويسة BEGIN PUBLIC KEY هي بنية SubjectPublicKeyInfo من X.509: مُعرّف خوارزمية مع سلسلة بتات. وما يقع داخل تلك البتات يعتمد على الخوارزمية — فمع RSA هو RSAPublicKey بصيغة PKCS#1، ولهذا تكون BEGIN RSA PUBLIC KEY أقصر؛ ومع ECDSA هو نقطة المنحنى غير المضغوطة، ومع Ed25519 هو المفتاح الخام بطول 32 بايتاً.
الأس العام هو 65537
يستخدم كل مفتاح RSA هنا الأس e = 65537، ويُكتب 0x010001. وهو كبير بما يكفي لتفادي هجمات الأس الصغير، وفيه بتّان مضبوطان فقط، فيكلّف التحقق 16 عملية تربيع وضرباً واحداً.
البصمات تُحسب على DER لا على PEM
تُؤخذ بصمة SHA-256 على بنية SubjectPublicKeyInfo الثنائية. ولو حُسبت على نص base64 بدلاً من ذلك لتغيّرت كلما تغيّر لفّ الأسطر. والمكافئ محلياً هو openssl pkey -in private.pem -pubout -outform DER | openssl dgst -sha256 -binary | openssl base64.

أفضل ممارسات إدارة المفاتيح

ولّد المفاتيح حيث ستُستخدم
المفتاح الخاص الذي يعبر شبكة يكون قد انكشف لكل محطة في الطريق. والتوليد في المتصفح يُبقي المفتاح نفسه بعيداً عن الشبكة، وإن كانت شيفرة الصفحة ذاتها تصل عبرها؛ أما التوليد على الخادم الهدف فيلغي حتى خطوة النسخ. وللمفتاح الذي يحمي أنظمة إنتاج، فضّل الخادم.
فضّل Ed25519 ما لم يفرض شيء RSA
يمنح Ed25519 أماناً قوياً بمفتاح من 32 بايتاً، مع توقيع سريع وبلا معاملات يمكن ضبطها خطأً. ولا تلجأ إلى RSA إلا حين لا يترك لك طرف مقابل أو مكتبة قديمة خياراً آخر.
اعتبر 2048 بت هي الحد الأدنى
منعت NIST SP 800-131A استخدام RSA دون 2048 بت لتوليد التواقيع منذ 2013، ولن تُصدر أي سلطة شهادات عامة شهادة لمفتاح أصغر. اختر 3072 أو 4096 للمفاتيح المتوقع بقاؤها في الخدمة سنوات طويلة.
لا تودع مفتاحاً خاصاً في مستودع الشيفرة
ضع المفاتيح الخاصة في مدير أسرار أو متغيّر بيئة يُحمَّل وقت التشغيل. وما إن يصل مفتاح إلى مستودع، يصبح تدويره هو الرد الآمن الوحيد.
دوّر وفق جدول، لا بعد وقوع حادث فقط
انشر المفاتيح العامة الجديدة بمُعرّف مفتاح قبل تقاعد القديمة كي يقبل المتحقّقون الاثنين خلال فترة التداخل. والتدوير الذي يُمارَس روتينياً هو التدوير الذي ينجح تحت الضغط.

الأسئلة الشائعة

هل توليد مفتاح خاص على موقع ويب آمن؟
يُولَّد المفتاح بواسطة Web Crypto API في متصفحك أنت، ولا تُصدر هذه الصفحة أي طلب شبكة أثناء التوليد — يمكنك مراقبة لوحة الشبكة، أو قطع الاتصال ورؤية أن التوليد ما زال يعمل. لكن كن دقيقاً في ما يثبته ذلك وما لا يثبته: هو يبيّن أن الصفحة لا تحتاج خادماً، لكنه ليس برهاناً في مواجهة سكربت مخترَق، لأن شيفرة JavaScript تُجلب من خادمنا في كل زيارة. والمخاطر الباقية هي مخاطر المتصفح لا الشبكة — إضافة خبيثة تستطيع قراءة الصفحة وحافظتك، ومن يملك وصولاً إلى الجهاز يستطيع قراءة الملف المُنزَّل. وللمفتاح الذي يحمي أنظمة إنتاج، ولّده على الخادم الذي سيستخدمه؛ وأوامر OpenSSL أدناه تفعل ذلك بالضبط. أما هذه الصفحة فهي الأداة المناسبة للتطوير والاختبار والتعلّم، ولكل موضع يكون فيه مفتاح مولَّد في المتصفح مقبولاً.
ما الفرق بين PKCS#8 وPKCS#1؟
هما حاويتان لمفتاح RSA نفسه. تحمل PKCS#1، الموسومة بـBEGIN RSA PRIVATE KEY، أعداد RSA مباشرةً ولا توجد إلا لـRSA. أما PKCS#8، الموسومة بـBEGIN PRIVATE KEY، فتغلّف الأعداد نفسها بمُعرّف خوارزمية، ما يتيح لصيغة واحدة أن تحمل RSA وECDSA وEd25519 على السواء. تتوقع معظم المكتبات الحديثة PKCS#8 — وJDK تحديداً لا يقرأ إلا PKCS#8 دون مكتبة إضافية — بينما لا يزال عدد من بوابات الدفع والأدوات القديمة من حقبة OpenSSL يشترط PKCS#1. وتبديل المفتاح في هذه الصفحة يعيد ترميز المفتاح المعروض على الشاشة، فلا تُضاف معلومة ولا تُفقد وتبقى البصمة نفسها.
كيف أحوّل مفتاح PKCS#1 إلى PKCS#8 أو العكس؟
بدّل مفتاح بنية PEM في هذه الصفحة فيُعاد إصدار المفتاح نفسه في الحاوية الأخرى. أما لملف موجود لديك بالفعل، فيحوّل OpenSSL محلياً: يحوّل openssl pkcs8 -topk8 -nocrypt -in pkcs1.pem -out pkcs8.pem ملف BEGIN RSA PRIVATE KEY إلى BEGIN PRIVATE KEY، ويمضي openssl rsa -traditional -in pkcs8.pem -out pkcs1.pem في الاتجاه المعاكس. ولا يضيف أي من الاتجاهين مادة مفتاح ولا يزيلها؛ الغلاف وحده هو ما يتغيّر، ولهذا يصف الملفان المفتاح ذاته وينتجان البصمة ذاتها.
كيف أستخرج المفتاح العام من مفتاح RSA خاص؟
المفتاح العام قابل للاشتقاق من المفتاح الخاص، ولا يصح العكس أبداً. وتعرض هذه الصفحة النصفين معاً، فلا شيء تشتقّه. أما لمفتاح خاص لديك على القرص، فيكتب openssl pkey -in private.pem -pubout -out public.pem ملف BEGIN PUBLIC KEY المطابق. وهذه أيضاً طريقة التأكد من أن زوجاً ما متطابق — أعد توليد النصف العام وقارنه بالملف الذي أُعطي لك.
هل أختار RSA أم Ed25519؟
اختر Ed25519 حين لا يفرض عليك شيء غير ذلك. فهو يبلغ أماناً يقارب RSA 3072 بمفتاح من 32 بايتاً، ويوقّع أسرع، وليست فيه معاملات تُضبط خطأً. واختر RSA حين يشترطه طرف مقابل أو سلطة إصدار شهادات أو مكتبة قديمة، وهو أمر لا يزال شائعاً في أنظمة المؤسسات والمدفوعات. ويقع ECDSA بين الاثنين ويحظى بدعم واسع في TLS.
هل ما زال RSA بطول 2048 بت قوياً بما يكفي؟
نعم، لمعظم الأغراض اليوم. تقدّر NIST قوة أمان RSA بطول 2048 بت بـ112 بت وتمدّها حتى 2030 في SP 800-57؛ بينما يبلغ 3072 بت قوة 128 بت وهو ما تشير إليه NIST لما بعد ذلك. إذن: 2048 لكل ما ستدوّره خلال سنوات قليلة، و3072 أو 4096 لمفتاح تتوقع بقاءه في الخدمة في ثلاثينيات هذا القرن أو حين تشترطه سلطة إصدار شهادات. وكلفة المفتاح الأكبر هي توقيع أبطأ وتواقيع أكبر، لا أمان أضعف.
هل أستطيع استخدام هذه المفاتيح لتوقيع رموز JWT؟
نعم. تعمل مفاتيح RSA مع RS256 وRS384 وRS512 إضافةً إلى متغيّرات PSS؛ ويقترن ECDSA P-256 بـES256؛ وEd25519 هو خوارزمية EdDSA. وقّع بالمفتاح الخاص وانشر المفتاح العام كي يفحص المتحقّقون التواقيع دون قدرة على إنشائها. وثمة تحفّظ واحد إن استخدمت لوحة JWK بدل PEM: يَسِم Web Crypto مفتاح RSA بصيغة JWK بالحقل alg بقيمة RS256، فترفض المكتبات الصارمة تحميله لـPS256 أو RS512 — احذف العنصر alg، أو استخدم PEM. يقبل منشئ JWT لدينا هذه المفاتيح، ويُظهر المحلّل ما يحتويه الرمز الناتج.
هل تستطيع هذه الأداة توليد مفتاح SSH؟
ليس مباشرةً. فملف المفاتيح الخاصة في OpenSSH حاوية مختلفة لا تكتبها هذه الصفحة. لكن مفتاح RSA من هنا يبقى قابلاً للاستخدام: يشتق ssh-keygen -y -f rsa-2048-private.pem > id_rsa.pub سطر authorized_keys من الملف الذي نزّلته. أما مفاتيح Ed25519 من هنا فلا، لأن OpenSSH يرفض صيغة PKCS#8. وللوصول عبر SSH يبقى الجواب الأفضل هو ssh-keygen -t ed25519 على الجهاز الذي يحتاج المفتاح، فذلك يتفادى نقل مفتاح خاص أصلاً. أما لتوقيع JWT وتوقيع الإصدارات في CI والتحقق من الـwebhooks، فمفتاح PKCS#8 الذي تنتجه هذه الصفحة هو بالضبط ما تريده تلك الأدوات.
هل أستطيع حماية المفتاح الخاص بعبارة مرور؟
ليس هنا. تتطلب PKCS#8 المُعمّاة خطوة اشتقاق مفتاح لا تتيحها Web Crypto API، فتنفيذها يعني كتابة تعمية يدوية في JavaScript. أضف عبارة المرور محلياً بدل ذلك: يقرأ الأمر openssl pkcs8 -topk8 -in private.pem -out encrypted.pem الملف الذي نزّلته ويطلب منك عبارة مرور.
ما فائدة البصمة؟
هي تجزئة SHA-256 لبنية المفتاح العام، قصيرة بما يكفي لمقارنتها صوتياً أو في رسالة محادثة. وحين ترسل مفتاحاً عاماً إلى أحد، تؤكد مقارنة البصمات عبر قناة منفصلة أن ما وصل هو ما أرسلته. وهي تعرّف المفتاح العام وحده ولا تكشف شيئاً عن النصف الخاص. ولاحظ أنها ليست الرقم الذي يطبعه ssh-keygen -l: إذ يجزّئ OpenSSH صيغته السلكية الخاصة به بدل بنية SPKI، فلا يتطابق الاثنان أبداً للمفتاح نفسه.

أدوات ذات صلة

عرض جميع الأدوات →

فك تشفير AES — يدعم OpenSSL/CryptoJS

أدوات الأمن

فك تشفير AES أونلاين — GCM/CBC/CTR، عبارة مرور أو مفتاح خام، يكتشف تلقائيًا صيغة OpenSSL وCryptoJS "U2FsdGVkX1". يعمل 100% داخل المتصفح، والمفاتيح لا تغادر الصفحة أبدًا.

أداة تشفير AESGCM/CBC/CTR

أدوات الأمن

أداة تشفير AES مجانية أونلاين — AES-128/192/256، GCM/CBC/CTR، عبارة مرور (PBKDF2) أو مفتاح خام. تعمل 100% داخل متصفحك؛ لا شيء يُرفع.

مولّد تجزئة bcrypt والتحقق منها

أدوات الأمن

ولّد تجزئات كلمات المرور بـ bcrypt وتحقق منها أونلاين — تكلفة قابلة للضبط، بادئات $2b$/$2a$/$2y$. 100% في متصفحك؛ كلمة مرورك لا تُرفع أبداً.

مولّد HMAC ومدقّق التوقيع

أدوات الأمن

مولّد ومدقّق HMAC مجاني أونلاين. احسب HMAC-SHA256/SHA1/SHA384/SHA512 بمفاتيح Text أو Hex أو Base64 وإخراج Hex/Base64/Base64URL. كل شيء داخل متصفحك — المفاتيح لا تغادر الصفحة.

محلّل JWT — فك ترميز الرموز

أدوات الأمن

فك ترميز رموز JWT أونلاين مع محلّل JWT المجاني. افحص الترويسة والحمولة والتوقيع وانتهاء الصلاحية والخوارزمية والمطالبات فوراً. 100% في المتصفح — رمزك لا يغادر جهازك. بلا تسجيل، بلا تتبّع.

مُنشئ وترميز JWT

أدوات الأمن

مولّد ومرمّز JWT مجاني أونلاين. ابنِ الترويسة والحمولة، ووقّع بـ HS256 أو RS256 أو ES256 فوراً. 100% في المتصفح — سرّك ومفتاحك لا يغادران جهازك.