مولّد تجزئة bcrypt والتحقق منها
ولّد تجزئات كلمات المرور بـ bcrypt وتحقق منها أونلاين — تكلفة قابلة للضبط، بادئات $2b$/$2a$/$2y$. 100% في متصفحك؛ كلمة مرورك لا تُرفع أبداً.
ما هو bcrypt؟
Bcrypt دالة تجزئة كلمات مرور مصمّمة خصيصاً لتخزين كلمات المرور بأمان. بدل الاحتفاظ بكلمة المرور كنص صريح، يخزّن الخادم تجزئة bcrypt أحادية الاتجاه؛ وعند تسجيل دخول المستخدم، يجزّئ الخادم كلمة المرور المُرسَلة بالطريقة نفسها ويفحص تطابق التجزئتين. بُنِيَ bcrypt على شفرة Blowfish وصمّمه Niels Provos وDavid Mazieres عام 1999، بميزة متعمّدة واحدة تميّزه عن دوال التجزئة العامة مثل SHA-256: إنه بطيء عمداً، ويمكنك جعله أبطأ مع الوقت بعامل تكلفة قابل للضبط كلما صار العتاد أسرع.
تجزئة bcrypt هي سلسلة واحدة واصفة لنفسها من 60 حرفاً — مثلاً $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq. تحزم أربعة أجزاء: الإصدار ($2b$)، والتكلفة (12، عامل عمل لوغاريتمي)، وملح Base64 من 22 حرفاً، ومُقطَّر Base64 من 31 حرفاً. ولأن الملح عشوائي ومضمَّن في التجزئة، تنتج كلمة المرور نفسها تجزئة مختلفة في كل مرة — مما يبطل جداول قوس قزح ويخفي حقيقة اختيار مستخدمَين كلمة المرور نفسها. يقرأ التحقق الملح والتكلفة من التجزئة المخزّنة ويعيد تجزئة المرشّح، لذا لا يحتاج bcrypt أبداً (ولا يستطيع) عكس تجزئة لاستعادة كلمة المرور.
تعمل هذه الأداة بالكامل في متصفحك باستخدام تطبيق bcrypt مُدمج — لا تُرفع أي كلمة مرور أو تجزئة أبداً. استخدمها لـتوليد تجزئة بتكلفة وبادئة مختارتين، ولـالتحقق من كلمة مرور مقابل تجزئة موجودة، ولقراءة بنية التجزئة. تقترن طبيعياً بأدوات أمان أخرى: احمِ مجلداً بمصادقة HTTP Basic باستخدام مولّد htpasswd لدينا (الذي يمكنه إصدار مدخلات bcrypt مباشرةً)، وسُكّ كلمة مرور قوية لتجزئتها بـ مولّد كلمات المرور العشوائية لدينا، ولجأ إلى مولّد SHA-256 لدينا حين تحتاج إلى تدقيق اختباري عام سريع بدل تجزئة كلمة مرور بطيئة. إذا كنت تقرّر بأي خوارزمية تخزّن كلمات المرور، فقارن الخيارات في bcrypt مقابل Argon2 مقابل scrypt.
// Node.js — bcryptjs / bcrypt (emits $2b$)
const bcrypt = require('bcrypt');
const hash = await bcrypt.hash('correct horse battery staple', 12);
// -> $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
const ok = await bcrypt.compare('correct horse battery staple', hash); // true
# Python — bcrypt
import bcrypt
hashed = bcrypt.hashpw(b'correct horse battery staple', bcrypt.gensalt(12))
bcrypt.checkpw(b'correct horse battery staple', hashed) # True
# PHP — password_hash (emits $2y$)
$hash = password_hash('correct horse battery staple', PASSWORD_BCRYPT, ['cost' => 12]);
password_verify('correct horse battery staple', $hash); // true
# Apache htpasswd CLI — bcrypt entry to stdout (-B bcrypt, -b inline, -n stdout)
htpasswd -Bbn admin 'correct horse battery staple'
# -> admin:$2y$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq الميزات الرئيسية
توليد تجزئات bcrypt
أنتج تجزئة bcrypt قياسية من 60 حرفاً من أي كلمة مرور بملح عشوائي جديد. كل نقرة تنتج تجزئة صالحة مختلفة، تماماً كما يفعل مخزن كلمات مرور حقيقي.
عامل تكلفة قابل للضبط
اضبط عامل العمل من 4 إلى 15 (12 هو الإعداد الافتراضي الحديث). أحسّ كيف تضاعف كل خطوة وقت الحساب تقريباً لتختار تكلفة قوية لكنها سريعة بما يكفي لتسجيل الدخول.
اختيار بادئة الإصدار
أصدر $2b$ (معيار bcryptjs الحالي)، أو $2y$ (PHP / Apache htpasswd)، أو $2a$ (الأصلي). جميعها متبادلة للتحقق عبر المكتبات.
التحقق من كلمة مرور مقابل تجزئة
الصق تجزئة مخزّنة وكلمة مرور مرشّحة لتأكيد التطابق فوراً — بإعادة التجزئة بالملح والتكلفة المضمَّنين، دون فكّ تعمية. مثالي لتصحيح تسجيل دخول فاشل.
تفكيك بنية التجزئة
شاهد أي تجزئة bcrypt مقسَّمة إلى إصدارها وتكلفتها وملحها ومُقطَّرها، لتصبح بنية سلسلة $2b$12$... واضحة بنظرة واحدة.
100% على جانب العميل
تتم كل عمليات التجزئة والتحقق محلياً في متصفحك. لا تُرسَل أي كلمة مرور أو تجزئة إلى خادم أبداً، لذا يمكنك العمل ببيانات اعتماد حقيقية بسرية.
أمثلة على مولّد bcrypt
تجزئة bcrypt (تكلفة 12، $2b$)
password: correct horse battery staple cost: 12 prefix: $2b$
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
تجزئة bcrypt بتكلفة 12 وبادئة $2b$. الملح عشوائي، لذا تنتج كلمة المرور نفسها تجزئة مختلفة في كل مرة — ومع ذلك تتحقق جميعها مقابل كلمة المرور الأصلية.
التحقق من كلمة مرور مقابل تجزئة
password: correct horse battery staple hash: $2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
✓ Match — the password is correct for this hash
التحقق لا يفكّ تعمية التجزئة. يعيد bcrypt تجزئة كلمة المرور المرشّحة باستخدام الملح والتكلفة المضمَّنين في التجزئة المخزّنة، ثم يقارن النتيجة. التطابق يعني أن كلمة المرور صحيحة.
تفكيك بنية التجزئة
$2b$12$dUSFKqT1FCMYZ6hcQfsxuONizEqcX8IGK8snfVSowP5Uu.TDJoPUq
version: $2b$ · cost: 12 · salt: dUSFKqT1FCMYZ6hcQfsxuO · digest: NizEqcX8IGK8snfVSowP5Uu.TDJoPUq
كل تجزئة bcrypt واصفة لنفسها: علامة إصدار، وتكلفة من رقمين، وملح Base64 من 22 حرفاً، ومُقطَّر Base64 من 31 حرفاً، كلها في سلسلة واحدة من 60 حرفاً. تفصلها الأداة لتقرأها بنظرة واحدة.
كيفية استخدام مولّد bcrypt
- 1
أدخل كلمة مرور واختر التكلفة
في تبويب «التوليد»، اكتب كلمة مرور أو انقر «كلمة مرور عشوائية». اختر عامل تكلفة (4-15؛ 12 هو الإعداد الافتراضي الحديث) وبادئة إصدار — $2b$ أو $2a$ أو $2y$ — لتطابق بيئتك.
- 2
ولّد التجزئة
تُحسب تجزئة bcrypt محلياً بملح عشوائي جديد وتظهر كسلسلة واحدة من 60 حرفاً بصيغة $2b$12$.... انقر «نسخ» لأخذها، أو أعد التوليد للحصول على تجزئة مملَّحة جديدة.
- 3
اقرأ البنية أو تحقّق
تقسّم لوحة البنية التجزئة إلى إصدار وتكلفة وملح ومُقطَّر. انتقل إلى تبويب «التحقق» للصق تجزئة مخزّنة وكلمة مرور وتأكيد التطابق فوراً.
Common Errors
محاولة فكّ تعمية تجزئة
bcrypt أحادي الاتجاه؛ لا يوجد فكّ تعمية. لفحص كلمة مرور، تحقق منها مقابل التجزئة بدل محاولة عكس المُقطَّر.
bcrypt.decrypt(hash) // no such operation
bcrypt.compare(password, hash) // returns true / false
ضبط التكلفة منخفضة جداً
تكلفة منخفضة مثل 4 أو 6 تجزّئ على الفور تقريباً، مما يتيح للمهاجمين أيضاً كسر التجزئات المسرّبة بالقوة الغاشمة بسرعة. استخدم 12 كأساس.
cost: 4 // far too fast, weak against brute force
cost: 12 // modern default, resists brute force
توقّع التجزئة نفسها مرتين
لأن الملح عشوائي، تنتج إعادة تجزئة كلمة المرور نفسها سلسلة مختلفة. قارن بالتحقق، لا بفحص تجزئتين للتساوي بايت ببايت.
hash(pw) === storedHash // fails — different salts
bcrypt.compare(pw, storedHash) // correct check
حالات الاستخدام الشائعة
- بذر تجزئة كلمة مرور في قاعدة بيانات
- ولّد تجزئة bcrypt لحساب مسؤول أو اختبار وأدرجها مباشرةً في جدول المستخدمين، لتسجّل الدخول دون تجهيز تدفّق تسجيل كامل أولاً.
- تصحيح تسجيل دخول فاشل
- تحقق من كلمة مرور معروفة الصحة مقابل التجزئة المخزّنة لتأكيد ما إذا كانت التجزئة نفسها صحيحة، فتعزل الخطأ عن شيفرة المصادقة لديك.
- اختيار عامل التكلفة المناسب
- ولّد عند عدة مستويات تكلفة على عتادك الخاص لتحسّ المدة التي يستغرقها كل منها، ثم اختر عامل عمل يقاوم القوة الغاشمة دون إبطاء تسجيلات الدخول الحقيقية.
- إنشاء مدخلات htpasswd / المصادقة الأساسية
- أنتج تجزئة bcrypt بصيغة $2y$ لبيانات اعتماد Apache أو Docker Registry أو Caddy، ثم أسقطها في سطر user:hash لمصادقة HTTP Basic.
- بناء تجهيزات اختبار
- سُكّ تجزئات bcrypt لبذر اختبارات تكامل لتدفّق تسجيل دخول أو إعادة تعيين كلمة مرور دون إقامة خادم مصادقة حقيقي.
- تدقيق تجزئة وجدتها
- اقرأ بنية سلسلة bcrypt في إعداد أو تفريغ للتحقق من عامل تكلفتها، وتحقق منها مقابل كلمة المرور التي تتوقعها لتأكيد التطابق.
التفاصيل التقنية
- مبني على Blowfish، بتكلفة تكيّفية
- يشتق bcrypt تجزئته من الإعداد المكلف لمفتاح شفرة Blowfish، مكرَّراً 2^cost مرة. رفع التكلفة بمقدار واحد يضاعف العمل، مبقياً الدالة بطيئة ضد القوة الغاشمة كلما تحسّن العتاد.
- ملح عشوائي بحجم 128 بت
- تضمّن كل تجزئة ملحاً عشوائياً بحجم 16 بايت (128 بت)، مرمَّزاً بـ Base64 كـ22 حرفاً بعد التكلفة. الملح يجعل كل تجزئة فريدة، فلا تشترك كلمات المرور المتطابقة في مُقطَّر ولا تنطبق جداول قوس قزح.
- صيغة واصفة لنفسها من 60 حرفاً
- المخرَج هو $version$cost$salt+digest — سلسلة ثابتة من 60 حرفاً تحمل كل ما يلزم للتحقق منها. لا حاجة إلى عمود ملح منفصل أو مخزن معطيات.
- حد 72 بايتاً لكلمة المرور
- يجزّئ bcrypt أول 72 بايتاً فقط من كلمة المرور؛ ويُتجاهَل ما بعد ذلك بصمت. لعبارات المرور الطويلة جداً، تُعدّ التجزئة المسبقة (مثلاً بـ SHA-256) قبل bcrypt تخفيفاً شائعاً.
- تحقّق، لا تفكّ تعميةً
- bcrypt أحادي الاتجاه. يعيد التحقق تشغيل التجزئة على كلمة المرور المرشّحة بالملح والتكلفة المحلَّلين من التجزئة المخزّنة، ثم يقارن المُقطَّرات في وقت ثابت. لا توجد عملية تستعيد النص الصريح.
- ملاحظات الأمانة والتحفظات
- تُحسب التجزئات محلياً ولا يُتحقق منها مقابل نظام فعلي. التجزئات المنسوخة وأي كلمة مرور كتبتها تبقى في حافظتك وفي ذاكرة المتصفح — عاملها كأسرار وامسح حافظتك بعد اللصق في الإنتاج.
أفضل الممارسات
- استخدم التكلفة 12 أو أعلى
- التكلفة 12 هي الأساس الحديث؛ ارفعها نحو 14 للأنظمة الحساسة طالما بقي زمن تسجيل الدخول مقبولاً. أعد التقييم دورياً — ما كان بطيئاً بما يكفي قبل خمس سنوات صار رخيص الكسر اليوم.
- لا تخزّن أو تسجّل النص الصريح أبداً
- خزّن تجزئة bcrypt فقط، لا كلمة المرور الأصلية أبداً، وأبقِ كلمات المرور خارج السجلات ورسائل الخطأ. تُفقَد قيمة bcrypt بأكملها إذا تسرّب النص الصريح إلى جانبها.
- دع bcrypt يتولى الملح
- يولّد bcrypt ملحاً عشوائياً آمناً ويضمّنه لك. لا توفّر ملحك الثابت الخاص ولا تعيد استخدام واحد — الملح العشوائي لكل تجزئة هو ما يبطل جداول قوس قزح.
- انتبه لحد 72 بايتاً
- إن قبلت عبارات مرور طويلة، فتذكّر أن bcrypt يتجاهل البايتات بعد 72. فكّر في التجزئة المسبقة بـ SHA-256، أو قيّم Argon2id، عندما يجب تغطية المدخلات الطويلة جداً بالكامل.
الأسئلة الشائعة حول مولّد bcrypt
هل استخدام مولّد bcrypt أونلاين آمن؟
كيف أولّد تجزئة bcrypt أونلاين؟
$2b$ لمعظم البيئات الحديثة، أو $2y$ لـPHP وApache، أو $2a$ للمعرّف الأصلي. تُحسب تجزئة bcrypt فوراً في متصفحك بملح عشوائي جديد وتظهر كسلسلة واحدة من 60 حرفاً بصيغة $2b$12$... يمكنك نسخها بنقرة واحدة. لا شيء يُرفع: كلمة المرور والتجزئة لا تغادران جهازك أبداً. أعد التوليد في أي وقت للحصول على تجزئة صالحة أخرى لكلمة المرور نفسها، إذ يحمل كل منها ملحاً عشوائياً مختلفاً. هل يمكن فكّ تعمية تجزئة bcrypt أو عكسها؟
أي عامل تكلفة (عامل العمل) يجب أن أستخدم؟
ما الفرق بين $2a$ و$2b$ و$2y$؟
$2a$ هو المعرّف الأصلي واسع الاستخدام؛ و$2b$ هو النسخة الحالية المصحَّحة التي تصدرها مكتبة bcryptjs ومعظم التطبيقات الحديثة؛ و$2y$ هو المعرّف الذي يستخدمه PHP وأداة htpasswd في Apache. للتحقق فهي متبادلة — ستتحقق تجزئة تولّدها هنا بأي بادئة بشكل صحيح عبر المكتبات، لأنها جميعاً تشغّل الدالة الأساسية نفسها. اختر البادئة التي تتوقعها بيئتك إذا احتجت إلى توافق بايت ببايت. كيف أتحقق من كلمة مرور مقابل تجزئة bcrypt؟
$2b$12$... الكاملة) وكلمة المرور المرشّحة، وستخبرك الأداة فوراً إذا كانتا متطابقتين. تعمل باستخراج الملح والتكلفة المضمَّنين في التجزئة، وإعادة تجزئة كلمة المرور المرشّحة بهذه المعطيات بالضبط، ومقارنة المُقطَّر الجديد بالمخزّن — دون أي فكّ تعمية. هكذا يفحص نظام تسجيل الدخول كلمة المرور: لا يستعيد النص الصريح أبداً، بل يؤكد فقط أن إعادة تجزئة كلمة المرور المُرسَلة تعيد إنتاج التجزئة المخزّنة. bcrypt مقابل Argon2 مقابل scrypt — أيها أستخدم؟
لماذا تختلف تجزئة bcrypt في كل مرة؟
أدوات ذات صلة
عرض جميع الأدوات →محلّل JWT — فك ترميز الرموز
أدوات الأمن
فك ترميز رموز JWT أونلاين مع محلّل JWT المجاني. افحص الترويسة والحمولة والتوقيع وانتهاء الصلاحية والخوارزمية والمطالبات فوراً. 100% في المتصفح — رمزك لا يغادر جهازك. بلا تسجيل، بلا تتبّع.
مُنشئ وترميز JWT
أدوات الأمن
مولّد ومرمّز JWT مجاني أونلاين. ابنِ الترويسة والحمولة، ووقّع بـ HS256 أو RS256 أو ES256 فوراً. 100% في المتصفح — سرّك ومفتاحك لا يغادران جهازك.
مولّد تجزئة MD5 — فوري ومجاني أونلاين
أدوات الأمن
أنشئ تجزئة MD5 وSHA-256 وSHA-1 وSHA-512 فوراً — أداة مجانية تعمل في متصفّحك بدون تتبّع أو رفع بيانات. الصق النص واحصل على التجزئة في ثانية. جرّبها الآن.
مولّد كلمات مرور عشوائية — قوي وآمن ومجاني
أدوات الأمن
ولّد كلمات مرور عشوائية قوية فوراً — أداة مجانية أونلاين تعمل في متصفّحك فقط. خصّص الطول والأحرف، دُفعات حتى 50 مع تحليل الإنتروبيا. بياناتك لا تغادر جهازك.
مولّد تجزئة SHA-1 (160 بت — إرث)
أدوات الأمن
أنشئ تجزئات SHA-1 في متصفحك — مخرجات سداسية من 40 حرفاً، بدون رفع. أداة إرثية لمعرّفات Git وفحص الشهادات القديمة وعمليات التدقيق. بياناتك لا تغادر جهازك.
مولّد تجزئة SHA-256 وأداة المجموع الاختباري
أدوات الأمن
أنشئ تجزئات SHA-256 أونلاين مجاناً. جزّئ النصوص والملفات في متصفحك، تحقق من المجاميع الاختبارية، وانسخ مخرجات سداسية من 64 حرفاً. بدون تسجيل؛ بياناتك لا تغادر الصفحة.