طريقة الاستخدام
- الصق قيمة تجزئة واحدة. أزل التسميات مثل 0x أو sha256= أو sha384-، لكن أبقِ تجزئات كلمات المرور كاملة، بما في ذلك $ أو { أو * في بدايتها.
- اقرأ النتيجة: الصيغة المكتشفة وحجمها بالبت، ثم «الخوارزميات المحتملة» مع تمييز «الأرجح» منها. ويظهر معامل التكلفة في bcrypt، أو عدد الجولات في sha256crypt وsha512crypt وPBKDF2، عندما تتضمنه السلسلة.
- بالنسبة إلى الخوارزميات المحتملة MD5 وSHA-1 وSHA-256 وSHA-512 وCRC-32 وCRC-32C، ينقلك زر «فتح الأداة» إلى أداة الحساب المطابقة.
- إذا كنت تعرف النص الأصلي أو تخمّنه، فاكتبه في «التحقق مقابل نص» لترى أي خوارزمية تعيد إنتاج قيمة التجزئة.
كيف يُحدَّد نوع التجزئة
لكل خوارزمية تجزئة حجم مخرجات ثابت، ويستخدم الترميز الست عشري حرفين لكل بايت، لذا فطول السلسلة الست عشرية هو أقوى دليل. وتفحص الأداة أيضًا مجموعة الأحرف، وتبحث عن البادئات التي تضعها صيغ تجزئة كلمات المرور في بداية السلسلة.
| الأحرف الست عشرية | البتات | الخوارزميات الشائعة |
|---|---|---|
| 8 | 32 | CRC-32، CRC-32C، Adler-32 |
| 32 | 128 | MD5، NTLM، MD4 |
| 40 | 160 | SHA-1، RIPEMD-160 |
| 56 | 224 | SHA-224، SHA3-224 |
| 64 | 256 | SHA-256، SHA3-256، BLAKE2s، Keccak-256 |
| 96 | 384 | SHA-384، SHA3-384 |
| 128 | 512 | SHA-512، SHA3-512، BLAKE2b، Whirlpool |
لا يكفي الطول وحده لحسم المسألة، لأن التجزئة الجيدة تبدو كبيانات عشوائية ولا تحمل أي علامة تدل على خوارزميتها. فالقيمة المكوّنة من 32 حرفًا قد تكون MD5 أو MD4 أو NTLM، وهي الخوارزمية التي يستخدمها Windows لكلمات مرور الحسابات (MD4 لكلمة المرور بترميز UTF-16LE). لذلك ترتّب الأداة الخوارزميات المحتملة حسب شيوعها: MD5 أولًا، أو NTLM أولًا عندما تكون التجزئة كلها بأحرف كبيرة، كما تطبعها بعض أدوات استخراج كلمات مرور Windows. وبالمثل، لا تختلف Keccak-256 المستخدمة في Ethereum عن SHA3-256 المعتمدة معيارًا إلا في الحشو، ومع ذلك تعطي كلتاهما 64 حرفًا ست عشريًا.
ملخصات Base64 وصيغ تجزئة كلمات المرور
تكتب بعض الأنظمة الملخصات بترميز Base64 بدلًا من الست عشري: 24 حرفًا لـ 16 بايتًا (MD5، كما في الترويسة Content-MD5)، و28 لـ SHA-1، و44 لـ SHA-256، و64 لـ SHA-384 (كما في سمات Subresource Integrity)، و88 لـ SHA-512. وتحوّل الأداة الطول إلى عدد البايتات وتعرض الخوارزميات المحتملة نفسها. ويُقبل غياب الحشو والأحرف الآمنة لعناوين URL، لكن أزل أولًا أي بادئة مثل sha384-.
صيغ تجزئة كلمات المرور تصف نفسها بنفسها: فالبادئة تسمّي الخوارزمية، وتُكتب إعدادات الملح والتكلفة داخل السلسلة. والصيغ الحديثة مملّحة وبطيئة عن قصد؛ أما صيغ LDAP وMySQL في الصفين الأخيرين فهي بنى سريعة مبنية على SHA-1، ولا يضيف ملحًا منها إلا {SSHA}.
| تبدأ بـ | الصيغة | توجد عادةً في |
|---|---|---|
$2a$، $2b$، $2y$ | bcrypt، وطولها دائمًا 60 حرفًا؛ والرقمان التاليان هما معامل التكلفة، وكل زيادة بمقدار درجة واحدة تضاعف العمل | أطر عمل الويب، وpassword_hash() في PHP |
$argon2id$ | Argon2id مع إعدادات الذاكرة (m) والوقت (t) والتوازي (p) | التطبيقات الحديثة، وتوصي بها OWASP |
$6$، $5$ | sha512crypt وsha256crypt، مع rounds= اختياري | /etc/shadow في Linux |
$y$ | yescrypt | /etc/shadow في كثير من توزيعات Linux الحالية |
$1$، $apr1$ | md5crypt، وApache MD5 | أنظمة Unix القديمة، و.htpasswd |
pbkdf2_sha256$ | PBKDF2-SHA256 مع عدد التكرارات | Django |
{SHA}، {SSHA} | SHA-1، وSHA-1 المملّح | أدلة LDAP |
* متبوعة بـ 40 رقمًا ست عشريًا | PASSWORD() في MySQL 4.1+ | جداول المستخدمين في MySQL |
تحديد النوع ليس كسرًا للتجزئة
التجزئة أحادية الاتجاه. ولا تنظر الأداة إلا إلى شكل السلسلة: فهي لا تستطيع كشف المدخلات أو فك تشفيرها أو البحث عنها، ولا ترسل شيئًا إلى خادم أو إلى قاعدة بيانات على الإنترنت. والطريقة الوحيدة لإيجاد المدخلات هي تخمين قيم محتملة وحساب تجزئة كل منها، وهذا ما تفعله أدوات استعادة كلمات المرور مثل hashcat وJohn the Ripper بعد أن تعرف الخوارزمية. وقد وُجدت الصيغ المملّحة والبطيئة مثل bcrypt وArgon2 لتجعل هذا التخمين مكلفًا. ولا تختبر إلا التجزئات المصرّح لك بالعمل عليها.
يختبر التحقق مقابل نص تخمينًا واحدًا محددًا. فهو يحسب تجزئة النص الذي تكتبه، بترميز UTF-8، باستخدام MD5 وSHA-1 وSHA-256 وSHA-384 وSHA-512 وCRC-32 وCRC-32C، ويخبرك أي نتيجة تساوي قيمة التجزئة، سواء كُتبت بالست عشري بأحرف كبيرة أو صغيرة أو بترميز Base64. ولا يمكنه تأكيد تجزئات كلمات المرور المملّحة أو قيم HMAC، لأنها تعتمد أيضًا على ملح أو مفتاح سري؛ أما القيمة المحسوبة بمفتاح، فاستخدم لها مولّد HMAC مع المفتاح.
الأسئلة الشائعة
هل تستطيع هذه الأداة إخباري بالنص الأصلي أو كلمة المرور؟
لا. فهي تسمّي الخوارزمية المحتملة فقط. ولا يمكن عكس دوال التجزئة؛ أما مواقع «فك تشفير التجزئة» على الإنترنت فتبحث عن القيمة في جداول تضم تجزئات الكلمات الشائعة وكلمات المرور المسرّبة، وهذا لا ينجح إلا مع المدخلات الضعيفة غير المملّحة.
لماذا تُعرض عدة خوارزميات لقيمة تجزئة واحدة؟
الخوارزميات التي لها حجم المخرجات نفسه تنتج سلاسل بالطول نفسه ومجموعة الأحرف نفسها، ولا شيء داخل التجزئة يسجّل الخوارزمية المستخدمة. وتُعرض الخوارزمية الأرجح أولًا، بناءً على مدى شيوع كل خوارزمية. ولتتأكد، أعد حساب التجزئة من مدخلات معروفة.
هل السلسلة الست عشرية المكوّنة من 32 حرفًا هي MD5 دائمًا؟
غالبًا، لكن ليس دائمًا. فـ NTLM وMD4 وMD2 وRIPEMD-128 تعطي الطول نفسه، وكذلك أي قيمة من 128 بت مكتوبة بالست عشري، مثل UUID بلا شرطات أو رمز مميز عشوائي. والسياق هو الفيصل: فتجزئة كلمة مرور في Windows تعني NTLM، والمجموع الاختباري لملف يعني MD5.
لماذا لا يجد «التحقق مقابل نص» أي تطابق؟
echo ما لم تستخدم echo -n أو printf)، أو اختلاف المسافات أو حالة الأحرف، أو نص حُسبت تجزئته بترميز غير UTF-8، أو وجود ملح أو مفتاح كما في تجزئات كلمات المرور وHMAC، أو خوارزمية لا يشملها التحقق، مثل SHA-3 أو BLAKE2 أو NTLM.هل لصق تجزئة كلمة مرور هنا آمن؟
يجري التحليل بالكامل في متصفحك، ولا تُرسل التجزئة أو تُخزَّن. ومع ذلك، فإن تجزئة كلمة مرور من نظام حقيقي تتيح لكل من يحصل عليها تجربة التخمينات دون اتصال، لذا تعامل مع هذه التجزئات على أنها بيانات حساسة، وأبعدها عن التذاكر والمحادثات ولقطات الشاشة.