JSON Formatter
Pretty-print, validate and minify JSON with precise error positions.
المطورون
تحديد خوارزمية التجزئة من شكل الناتج.
الطول هو المؤشر الأهم، لكنه ليس قاطعًا.
| الطول (ست عشري) | الخوارزمية المرجحة |
|---|---|
| 32 رمزًا | MD5 أو NTLM |
| 40 رمزًا | SHA-1 |
| 56 رمزًا | SHA-224 |
| 64 رمزًا | SHA-256 |
| 96 رمزًا | SHA-384 |
| 128 رمزًا | SHA-512 |
فالقيمة الست عشرية بطول 32 قد تكون MD5 وقد تكون NTLM من بيئة ويندوز. والطول وحده لا يحسم، بل السياق.
وبعض الصيغ قاطعة لأنها تحمل بادئة. فالقيمة التي تبدأ بـ $2y$ هي bcrypt، و$argon2id$ هي Argon2، و$6$ تشير إلى SHA-512-Crypt المستخدم في أنظمة يونكس.
وهذه البادئات تحمل عادة معامل الكلفة والملح أيضًا، ما يجعلها سهلة التمييز.
وفي التجزئات المرمّزة بـ Base64 يتغير الطول، فيلزم الرجوع إلى عدد البايتات.
هنا تصبح المسألة عملية.
إن وجدت في قاعدة بيانات كلمات مرور مخزنة بصيغة MD5 أو SHA-1، فهذه مشكلة جدية. فهذه الخوارزميات سريعة جدًا، وهذا بالضبط ما يجعلها غير صالحة لكلمات المرور: بطاقة رسوميات عادية تجرّب مليارات الاحتمالات في الثانية.
وحتى SHA-256 غير صالحة لتجزئة كلمات المرور رغم أنها غير مكسورة تشفيريًا. والسبب نفسه: إنها سريعة أكثر مما ينبغي.
وكلمات المرور تحتاج إلى خوارزميات بطيئة عمدًا بمعامل كلفة قابل للضبط. والموصى به: Argon2 وbcrypt وscrypt، ثم PBKDF2 بعدد تكرارات عالٍ حيث لا تتوفر غيرها.
وArgon2id هو الخيار الأفضل حاليًا للأنظمة الجديدة.
والملح لازم دائمًا: قيمة عشوائية لكل كلمة مرور تمنع أن تنتج الكلمات المتطابقة تجزئات متطابقة، وتُبطل الجداول المحسوبة مسبقًا. والخوارزميات المذكورة تولّده بنفسها.
وإن وجدت في نظام قائم تجزئات MD5، فالمسار المعتاد: أعد التجزئة عند أول تسجيل دخول ناجح، واستبدل القيم القديمة تدريجيًا.
توضيحات تلزم دائمًا.
التجزئة ليست تشفيرًا. وهي غير قابلة للعكس — لا يوجد مفتاح يعيدها إلى أصلها.
ومع ذلك يمكن «كسر» التجزئات الضعيفة، لا بعكسها بل بالتجريب. وفي كلمات المرور القصيرة أو الشائعة يكفي البحث في جدول محسوب مسبقًا.
ولا تدل التجزئة على طول المدخل: حرف واحد وكتاب كامل ينتجان قيمة بالطول نفسه.
أما لمجاميع التحقق من الملفات فالتجزئة مثالية، وSHA-256 هي الخيار الصحيح هناك. وتنشر جهات حكومية وشركات برمجيات مجاميع تحقق مع ملفاتها للتأكد من سلامتها.
والمقارنة تستحق فعلًا عند تنزيل ملف: تستغرق ثوانٍ وتكشف أخطاء النقل والتنزيلات المعدّلة معًا.
وهذه الأداة تعمل محليًا في متصفحك.
احتماليًا فقط. وخوارزميات كثيرة تنتج الطول نفسه، لكن بادئات مثل $2y$ قاطعة.
لا. سرعتهما الشديدة تجعل التجريب الجماعي سهلًا.
Argon2id أو bcrypt أو scrypt، وPBKDF2 بعدد تكرارات عالٍ عند الضرورة.
يمنع أن تنتج الكلمات المتطابقة تجزئات متطابقة، ويبطل الجداول المحسوبة مسبقًا.
لا، لكن التجزئات الضعيفة تُكسر بالتجريب.
لا.