اشتقاق المفاتيح PBKDF2 و HKDF

اشتق مفتاحًا من كلمة مرور أو سر باستخدام PBKDF2 أو HKDF، مع اختيار الملح وعدد التكرارات أو وسم info والتجزئة وطول الإخراج، واقرأه بصيغة hex أو base64، كل ذلك داخل متصفحك.

جارٍ تحميل الأداة…

اشتقاق المفاتيح PBKDF2 و HKDFمدِّد كلمة مرور لتصبح مفتاح PBKDF2، أو وسِّع سرًا عالي العشوائية إلى مفاتيح فرعية مسماة باستخدام HKDF، دون أن يغادر أي شيء جهازك. اختر التجزئة، واضبط الملح وعدد التكرارات (PBKDF2) أو وسم info (HKDF)، وحدد عدد البتات التي تحتاجها في الإخراج، وانسخ المفتاح المشتق بصيغة hex أو base64. تُحسب كل بايت محليًا عبر واجهة Web Crypto API الأصلية (crypto.subtle.deriveBits)، لذا لا تلمس كلمة مرورك ولا سرك أي خادم.

ما هي اشتقاق المفاتيح PBKDF2 و HKDF؟

اشتقاق المفاتيح PBKDF2 و HKDF أداة مجانية تعمل داخل المتصفح وتشغّل دالتي اشتقاق المفاتيح الأكثر استخدامًا بين المطورين. تبطئ PBKDF2 (دالة اشتقاق المفتاح المعتمدة على كلمة المرور 2) هجمات القوة الغاشمة عمدًا عبر تكرار HMAC آلاف المرات، فتحوّل كلمة مرور بشرية مع ملح إلى مفتاح بطول ثابت. أما HKDF (دالة اشتقاق المفتاح المعتمدة على HMAC) فتأخذ سرًا يملك عشوائية كافية بالفعل وتوسّعه إلى مفتاح فرعي واحد أو أكثر مرتبط بسياق باستخدام وسم info، وهو مثالي لاشتقاق مفاتيح تشفير ومصادقة منفصلة من سر رئيسي واحد. يستخدمها مهندسو الخلفية ومراجعو الأمان وكل من يكتب شيفرة تسجيل دخول أو تشفير لاختبار المتجهات أو إعادة إنتاج اشتقاق الخادم أو توليد مفاتيح لمهمة لمرة واحدة. استخدم مفتاح التبديل PBKDF2/HKDF لتغيير الخوارزمية، واختر SHA-256 أو SHA-384 أو SHA-512 أو SHA-1، واضبط طول الإخراج بالبت، واقرأ النتيجة بصيغة hex أو base64.

كيفية استخدام اشتقاق المفاتيح PBKDF2 و HKDF

  1. اختر PBKDF2 أو HKDF بمفتاح التبديل في الأعلى، بما يطابق الدالة التي تستخدمها شيفرتك أو متجه الاختبار.
  2. اكتب أو الصق كلمة مرورك (PBKDF2) أو سرك عالي العشوائية (HKDF) في حقل السر، ثم أدخل ملحًا.
  3. لـ PBKDF2 اضبط عدد التكرارات؛ ولـ HKDF اضبط وسم info الاختياري الذي يربط المفتاح بسياق.
  4. اختر التجزئة (SHA-256 أو SHA-384 أو SHA-512 أو SHA-1) وطول الإخراج بالبت.
  5. بدّل مفتاح hex / base64 إلى الترميز الذي تحتاجه وانسخ المفتاح المشتق بزر النسخ.

أمثلة

PBKDF2 — مفتاح بطول 256 بت من كلمة مرور

المدخل

Secret: correct horse battery staple
Salt: a1b2c3d4
Hash: SHA-256, Iterations: 100000, Bits: 256

المخرج

سلسلة hex مكوّنة من 64 حرفًا (32 بايت) قابلة لإعادة الإنتاج بنفس كلمة المرور والملح والتجزئة وعدد التكرارات

HKDF — مفتاح فرعي مرتبط بسياق من سر رئيسي

المدخل

Secret: 9f8e7d6c…(master key)
Salt: session-2024
Info: aes-gcm-encryption
Hash: SHA-256, Bits: 256

المخرج

مفتاح بطول 256 بت يختلف عن مفتاح نفس السر مع Info: hmac-authentication، فينتج سر رئيسي واحد مفاتيح فرعية مستقلة

إخراج أقصر بصيغة base64

المدخل

Bits: 128, encoding switched to base64

المخرج

سلسلة base64 مكوّنة من 24 حرفًا ترمّز أول 16 بايت مشتقة

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

هل تُرسل كلمة مروري أو سري إلى أي مكان؟
لا. يبقى السر والملح وinfo داخل متصفحك. يُشتق المفتاح محليًا عبر واجهة Web Crypto API ‏(crypto.subtle.deriveBits)، ولا يُرفع أو يُخزَّن أي شيء على أي خادم، لذا تعمل الأداة دون اتصال ولا تغادر مدخلاتك الصفحة أبدًا.
متى أستخدم PBKDF2 مقابل HKDF؟
استخدم PBKDF2 لاشتقاق مفتاح من كلمة مرور بشرية منخفضة العشوائية — فعدد تكراراتها يبطئ القوة الغاشمة. استخدم HKDF عندما يكون لديك بالفعل سر عالي العشوائية (مفتاح رئيسي أو سر مشترك) وتريد توسيعه إلى مفتاح فرعي منفصل واحد أو أكثر عبر وسم info. إن HKDF سريعة وليست بديلًا عن تمديد كلمة المرور في PBKDF2.
لماذا يُقرَّب طول الإخراج لديّ؟
تعمل deriveBits في Web Crypto بوحدة البايت الكاملة، لذا يُقرَّب طول الإخراج بالبت إلى أقرب مضاعف للعدد 8. تُظهر الإحصائية أسفل النتيجة عدد البتات والبايتات الفعلية التي أُنتجت.
ما التجزئات والخوارزميات المدعومة؟
تعمل الخوارزميتان على SHA-256 أو SHA-384 أو SHA-512 أو SHA-1، وهي التجزئات التي تتيحها Web Crypto في المتصفح لـ PBKDF2 و HKDF. لا تتوفر scrypt و Argon2 و bcrypt لأن المتصفحات لا تنفّذها أصليًا.
هل تعطي نفس المدخلات دائمًا نفس المفتاح؟
نعم. اشتقاق المفاتيح حتمي: فنفس الخوارزمية والسر والملح والتجزئة وطول الإخراج وعدد التكرارات (PBKDF2) أو info ‏(HKDF) تنتج دائمًا نفس البايتات، ولهذا يمكنك استخدام الأداة لإعادة إنتاج مفتاح اشتقه خادمك أو للتحقق منه.

أدوات ذات صلة