اشتقاق المفاتيح 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
- اختر PBKDF2 أو HKDF بمفتاح التبديل في الأعلى، بما يطابق الدالة التي تستخدمها شيفرتك أو متجه الاختبار.
- اكتب أو الصق كلمة مرورك (PBKDF2) أو سرك عالي العشوائية (HKDF) في حقل السر، ثم أدخل ملحًا.
- لـ PBKDF2 اضبط عدد التكرارات؛ ولـ HKDF اضبط وسم info الاختياري الذي يربط المفتاح بسياق.
- اختر التجزئة (SHA-256 أو SHA-384 أو SHA-512 أو SHA-1) وطول الإخراج بالبت.
- بدّل مفتاح 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) تنتج دائمًا نفس البايتات، ولهذا يمكنك استخدام الأداة لإعادة إنتاج مفتاح اشتقه خادمك أو للتحقق منه.
أدوات ذات صلة
تشفير نصوص AES (AES-GCM + PBKDF2)
شفّر النص وفك تشفيره باستخدام AES-256-GCM بمفتاح مشتق من عبارة مرور (PBKDF2 SHA-256، ملح عشوائي)، بالكامل داخل متصفحك ودون أي رفع.
تجزئة Argon2 وscrypt
جزّئ كلمة مرور باستخدام Argon2id أو scrypt وتحقق من تطابق تجزئة Argon2 مع كلمة مرور، بالكامل داخل متصفحك.
مولّد ومدقّق تجزئة Bcrypt
أنشئ تجزئة كلمة مرور bcrypt من نص عادي بعامل التكلفة الذي تختاره، أو تحقّق من كلمة مرور مقابل تجزئة bcrypt موجودة، بالكامل داخل متصفّحك.
مولّد عبارات BIP39 التذكيرية
أنشئ عبارة استرداد BIP39 عشوائية من 12 إلى 24 كلمة بعدة لغات، أو حوّل عبارة تذكيرية موجودة إلى الإنتروبيا الأولية الخاصة بها، كل ذلك داخل متصفحك.