مولد تجزئة SHA1

يُولِّد خوارزمية SHA-1 قيمة هاش بطول 160 بتًا (ما يعادل 40 حرفًا قمريًا)، وهي الخوارزمية المستخدمة في تحديد معرّفات كائنات Git، ومجموعات التحقق من سلامة في نظام SVN القديم، بالإضافة إلى العديد من أنظمة التوقيع التي ظهرت قبل عام 2017. يكفي لصق أي نص للحصول على قيمة هاش محددة بدقة. ويجب التذكير منذ البداية بأن خوارزمية SHA-1 تعاني من عيوب في مقاومة التصادمات (SHAttered، 2017)، ولا ينبغي استخدامها في إنشاء توقيعات جديدة أو تخزين كلمات المرور؛ بل تُستخدم فقط في فحوصات سلامة غير معادية.

كيفية حساب قيمة التجزئة (hash) لخوارزمية SHA-1

  1. 1

    لصق ما أدخلته

    أي نص، سلسلة نصية، ملف كامل تم تحويله إلى نص، أو تسلسل هكسادي.

  2. 2

    الترميز هو UTF-8

    يتم تسلسل البيانات المدخلة على شكل بايتات من نوع UTF-8 قبل عملية التجزئة، وهو ما يتوافق مع الإعداد الافتراضي في OpenSSL وPython hashlib وNode Crypto.

  3. 3

    تُشكل حلقة ميركل-دامغارد دائرةً مستمرة.

    يتم تضخيم الرسالة، ثم تقسيمها إلى كتل بحجم 512 بت، وتُمرر عبر دالة ضغط SHA-1 لمدة 80 دورة لكل كتلة.

  4. 4

    قم بنسخ ملخص التجزئة السداسية المكون من 40 حرفًا.

    يكون الناتج دائمًا عبارة عن 40 حرفًا هكساديسيميًا صغيرة (160 بتًا).

SHA-1 بنظرة سريعة

الخاصية القيمة
حجم المخرج 160 بت / 40 حرفًا سداسيًا عشريًا
حجم الكتلة 512 بت
عدد الجولات 80
مقاومة التصادم مكسورة (2^63 بادئة مختارة)
مقاومة الصورة الأولية سليمة (حتى وقت الكتابة)
السرعة ~500 ميغابايت/ث على نواة حديثة واحدة

أين لا يزال SHA-1 مقبولًا

  • Git. تعتمد معرّفات عمليات الإيداع (commit) والكتل (blob) على SHA-1 (مع دعم SHA-256 اختياريًا). قد تؤدي حالات التصادم إلى تشويش السجل، لكن لا يمكن تزوير عملية إيداع دون المفتاح الخاص بالمؤلف.
  • إزالة التكرار غير الأمنية. عنونة المحتوى في مستودعات الكائنات حيث لا يتضمن نموذج التهديد أي مهاجم.
  • واجهات برمجة متوافقة مع الإصدارات السابقة. خطافات ويب قديمة مثل X-Hub-Signature من GitHub (الإصدار v1).
  • المُعرِّفات الجنائية. بصمات الملفات لإزالة التكرار عبر الأرشيف.

أين لا يكون SHA-1 مقبولًا

  • شهادات TLS. بدأت المتصفحات في عدم الثقة بشهادات SHA-1 منذ عام 2017.
  • توقيع الكود. رفضت مايكروسوفت وأبل وموزيلا توقيعات SHA-1.
  • تجزئة كلمات المرور. استخدم Argon2id أو bcrypt.
  • HMAC في تصميم جديد. استخدم HMAC-SHA-256 كحد أدنى.

إذا أردت التحقق من الناتج

قارن مع echo -n "hello" | sha1sum على أي نظام يونكس. قيمة التجزئة للسلسلة hello هي aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d.

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

ليس من الناحية الرياضية؛ فبالنسبة للإدخالات القصيرة الشائعة، يمكن للمهاجم الذي يمتلك قاموسًا مُحسبًا مسبقًا تحديدها فورًا، ولهذا السبب لا تكفي التجزئات الحرفية وحدها لحماية كلمات المرور. أما بالنسبة إلى سلسلة عشوائية مكونة من 40 حرفًا، فلا يوجد طريقة عملية لاسترجاع محتواها بشكل عكسي.

لا. خوارزمية التجزئة الآمنة (SHA) هي عائلة خوارزميات أصدرها المعهد الوطني للمعايير والتقنية (NIST). يُعد SHA-1 الخوارزمية ذات الـ160 بت التي صدرت عام 1995، بينما تشمل عائلة SHA-2 كلًا من SHA-224 وSHA-256 وSHA-384 وSHA-512.

لضمان التوافق مع تجربة استخدام تمتد لأكثر من عقد من الزمن، بدأ نظام Git منذ عام 2017 في تعزيز مقاومته لتصادمات البدائل المحددة (SHA-1DC)، كما بدأ في دعم مستودعات مبنية على خوارزمية SHA-256 للمشاريع الجديدة.

على خادمنا. يُرسَل النص عبر اتصال مشفّر، ويُجزّأ باستخدام دالة SHA-1 القياسية، ثم تُعاد قيمة التجزئة المكونة من 40 حرفًا. نحن لا نخزّن النص الذي ترسله. ولأن SHA-1 دالة أحادية الاتجاه، فلا يمكن تحويل قيمة التجزئة نفسها مرة أخرى إلى نصك الأصلي.

أدوات ذات صلة

الأداة متاحة بلغات أخرى