Skip to content

مولّد تجزئة SHA-1 (160 بت — إرث)

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

بدون تتبّع يعمل في المتصفّح مجاني
⚠️ <bdi>SHA-1</bdi> خوارزمية إرثية مُهمَلة. استخدم <bdi>SHA-256</bdi> للعمل الجديد. جميع عمليات التجزئة تجري محلياً — لا يُرفع أي بيانات.
الخوارزمية
تمت المراجعة لصحة SHA-1 وفقاً لمتجهات اختبار NIST FIPS 180-1؛ تم التحقق من صياغة الإهمال مقابل NIST SP 800-131Aفريق هندسة Go Tools · May 28, 2026

ما هو SHA-1؟

SHA-1 (خوارزمية التجزئة الآمنة 1) هي دالة تجزئة تعموية بحجم 160 بت نشرتها NIST في 1995 ضمن FIPS 180-1. صممتها وكالة الأمن القومي الأمريكية لتحلّ محل SHA-0 (نسخة سابقة معيبة سُحبت سريعاً عام 1993)، وكانت الخوارزمية السائدة للتوقيعات الرقمية وشهادات TLS وتوقيع الكود خلال العقد الأول من الألفية الثالثة.

تاريخ الكسر: في 2005، نشر فريق Xiaoyun Wang هجوماً نظرياً يُقلّص مقاومة SHA-1 للتصادم من المتوقع 2^80 إلى 2^63 عملية. في فبراير 2017، أصدر Google وCWI Amsterdam هجوم SHAttered، منتجَين وثيقتَي PDF مختلفتَين بتجزئتَي SHA-1 متطابقتَين باستخدام نحو 110 سنة GPU. كان هذا الكسر العملي الحاسم. كانت NIST قد أهملت بالفعل SHA-1 للتوقيعات في 2011 (NIST SP 800-131A); اتبع مطوّرو المتصفحات ومراكز إصدار الشهادات بإزالة دعم شهادات SHA-1 في 2016–2017.

الوضع الحالي: SHA-1 مُهمَلة لجميع الاستخدامات الحساسة أمنياً — التوقيعات الرقمية، بصمات الشهادات، تخزين كلمات المرور، وتوقيع الكود. تستمر في تنسيق معرّف كائنات Git (تجزئات commit) حيث تُستخدم للعنونة بالمحتوى لا للأمان، وفي مجاميع اختبارية لبرامج إرثية لم يُهاجَر بعد. أضاف مشروع Git دعم تنسيق SHA-256 في الإصدار 2.29 (أكتوبر 2020). جميع المشاريع الجديدة يجب أن تستخدم SHA-256 أو ما هو أقوى.

تحسب هذه الأداة تجزئة SHA-1 بالكامل في متصفحك باستخدام crypto.subtle.digest('SHA-1', ...) من Web Crypto API. لا تُرسل أي بايتات إلى أي خادم.

// Hash text using Web Crypto API (SHA-1 — legacy use only)
async function sha1(text) {
  const data = new TextEncoder().encode(text);
  const hash = await crypto.subtle.digest('SHA-1', data);
  return Array.from(new Uint8Array(hash))
    .map(b => b.toString(16).padStart(2, '0'))
    .join('');
}

await sha1('Hello, World!');
// → '0a0a9f2a6772942557ab5355d76af442f8f65e01'
// ⚠️ SHA-1 is broken — use SHA-256 for new work.

أمثلة SHA-1

البحث في بصمة commit في Git

tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904
author A Dev <dev@example.com> 1716854400 +0000
committer A Dev <dev@example.com> 1716854400 +0000

Initial commit

يخزن Git كل commit ككتلة تُحسب تجزئتها SHA-1 من رأس الـ commit ومحتوياته بهذا التنسيق تحديداً. السلسلة السداسية من 40 حرفاً التي يعرضها git log هي بصمة SHA-1 المباشرة. الصق نص كائن الـ commit الخام هنا لإعادة إنتاج نفس التجزئة — مفيد عند تصحيح مخرجات git cat-file أو التحقق من أن مرآة المستودع لم تتلاعب بالتاريخ. ملاحظة: Git 2.29+ يدعم وضع SHA-256 (git init --object-format=sha256)، ومنصة GitHub ستنتقل في نهاية المطاف. للمستودعات الجديدة، فضّل وضع SHA-256.

التحقق من بصمة شهادة TLS قديمة

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAKlL...
-----END CERTIFICATE-----

قبل 2017، كانت المتصفحات تعرض بصمات الشهادات كسلاسل سداسية SHA-1 من 40 حرفاً. توقفت مراكز إصدار الشهادات عن إصدار شهادات موقّعة بـ SHA-1 في يناير 2016، وأزالت جميع المتصفحات الرئيسية الدعم بحلول مطلع 2017. إذا كنت تدقق شهادة داخلية قديمة أو تتحقق من جهاز IoT إرثي، الصق محتوى PEM هنا لإعادة إنتاج بصمة SHA-1 للمقارنة. المسارات الحديثة تستخدم بصمة SHA-256 من 64 حرفاً بدلاً منها.

التحقق من تنزيل برنامج قديم

node-v0.12.7-linux-x64.tar.gz

بعض أرشيفات البرامج القديمة لا تزال تنشر مجموعاً اختبارياً SHA-1 فقط. بينما يوفر هذا الكشف عن التلف الأساسي (لا عن التلاعب)، إلا أنه أفضل من لا شيء. استخدم تبويب الملف لإفلات الأرشيف، احسب تجزئة SHA-1، ثم قارنها بالقيمة المنشورة من الناشر. إذا كان SHA-256 متاحاً أيضاً، فضّله دائماً. للأرشيفات الجديدة، أصرّ على مجاميع اختبارية بـ SHA-256 أو SHA-512.

عرض توضيحي لتصادم SHAttered

(أفلت ملف shattered-1.pdf من Google/CWI عبر تبويب الملف)

في فبراير 2017 أطلق Google وCWI Amsterdam هجوم SHAttered — أول تصادم عملي لـ SHA-1. أنتجا ملفَّي PDF مختلفَين (shattered-1.pdf وshattered-2.pdf) تنتج عنهما نفس قيمة SHA-1 تحديداً: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. إفلات أي من الملفين في تبويب الملف بهذه الأداة ينتج نفس التجزئة، مما يثبت أن التصادم حقيقي. هذا العرض هو الدليل الأوضح على سبب كسر SHA-1: وثيقتان مختلفتان بنفس البصمة تعني أن البصمة لم تعد معرّفاً موثوقاً. استخدم SHA-256 لجميع مسارات سلامة الوثائق الجديدة.

كيفية توليد تجزئات SHA-1

  1. 1

    الصق نصاً أو أفلت ملفاً

    اختر تبويب النص والصق أي سلسلة نصية — رسالة commit، جسم شهادة، أو مدخل مجموع اختباري إرثي — في منطقة الإدخال. تتحدث تجزئة SHA-1 أثناء الكتابة. للملفات، انتقل إلى تبويب الملف واسحب أي ملف إلى منطقة الإفلات؛ يجزّئه المتصفح محلياً بدون أي رفع.

  2. 2

    انسخ التجزئة من 40 حرفاً

    انقر على زر النسخ بجانب مخرج التجزئة. السلسلة السداسية الصغيرة الكاملة من 40 حرفاً تنتقل إلى الحافظة. استخدم تبديل الأحرف الكبيرة إذا كان نظامك الإرثي يتوقع أحرفاً كبيرة — بعض الأدوات القديمة وواجهات Windows تستخدم الأحرف الكبيرة افتراضياً.

  3. 3

    قارن بالبصمة الإرثية

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

تفاصيل تقنية

الخوارزمية: بنية Merkle-Damgård، 80 جولة
تعالج SHA-1 المدخلات في كتل 512 بت (64 بايت)، تُطبّق 80 جولة من العمليات البتية مجمّعة في أربع مراحل من 20 جولة لكل منها، كل مرحلة بدالة منطقية مختلفة وثابت إضافي. الحالة الأولية هي خمس كلمات 32 بت (A–E)، والتجزئة النهائية هي تسلسل تلك الكلمات بعد الكتلة الأخيرة. محدّدة في FIPS 180-1 (1995)، خُلِفت بـ FIPS 180-4 (2015).
المخرجات: 160 بت، 40 حرفاً سداسياً
دائماً 40 حرفاً سداسياً صغيراً بالضبط (160 بت = 20 بايت، مرمّزة بحرفَين سداسيَّين لكل بايت). طول المخرجات ثابت بغض النظر عن حجم المدخلات. مقارنةً بـ 64 حرفاً لـ SHA-256، المخرجات الأقصر توفر بتات أقل من مقاومة التصادم.
الأداء: سريعة، لكن ذلك جزء من المشكلة
SHA-1 سريعة — عادةً 400–700 ميغابايت/ثانية في المتصفح باستخدام Web Crypto. للمهاجم، هذه السرعة ميزة: مجموعة GPU حديثة يمكنها حساب مليارات تجزئات SHA-1 في الثانية. هذا هو السبب وراء وجوب عدم استخدام SHA-1 (مثل MD5) لتخزين كلمات المرور — استخدم bcrypt أو scrypt أو Argon2 بدلاً منها.
المعايير: FIPS 180-1 (1995) — مُهمَلة في سياق FIPS 180-4
عُيِّرت SHA-1 في FIPS 180-1 (1995). أهملت NIST استخدام SHA-1 للتوقيعات الرقمية في NIST SP 800-131A (2011) وفي FIPS 186-5 (2023) حظرت رسمياً توليد التوقيعات الرقمية بها. لا تزال واجهة W3C WebCrypto API تتضمن SHA-1 لأسباب التوافق الإرثي، وهو ما يُمكّن أداة المتصفح هذه من حسابها.

أفضل الممارسات

لا تستخدم SHA-1 أبداً للعمليات الحساسة أمنياً
SHA-1 مُهمَلة للتوقيعات الرقمية وشهادات TLS وتوقيع الكود وتخزين كلمات المرور وأي مسار تهمّ فيه مقاومة التصادم. أثبت هجوم SHAttered عام 2017 تصادمات عملية. لجميع الاستخدامات الأمنية، انتقل إلى SHA-256 أو SHA-3.
استخدام SHA-1 للبحث في البصمات الإرثية مقبول
إذا كنت بحاجة للتحقق من مجموع اختباري لملف قبل 2017، أو البحث في معرّف commit في Git، أو فحص بصمة شهادة قديمة لأغراض التدقيق، فـ SHA-1 مناسبة. التجزئة نفسها لا تُستخدم لاتخاذ قرار ثقة — أنت فقط تعيد إنتاج بصمة معروفة كمرجع. وثّق هذا صراحةً في سجلات التدقيق.
جزّئ دائماً بايتات UTF-8، لا نقاط كود يونيكود
SHA-1، كجميع خوارزميات التجزئة، تعمل على البايتات لا الأحرف. نفس السلسلة النصية المرمّزة كـ UTF-8 مقابل UTF-16 تنتج تجزئات مختلفة. هذه الأداة دائماً تُرمّز المدخلات كـ UTF-8 بدون BOM قبل التجزئة.
استخدم المقارنة بالزمن الثابت عند التحقق من التجزئات في الكود
عند مقارنة تجزئتَي SHA-1 في الكود، استخدم فحص المساواة بالزمن الثابت — crypto.timingSafeEqual() في Node.js، hmac.compare_digest() في Python — بدلاً من مساواة السلاسل النصية العادية. المقارنة العادية تسرّب معلومات توقيت.

الأسئلة الشائعة حول SHA-1

هل SHA-1 لا يزال آمناً للاستخدام؟
لا. ضُعِّف SHA-1 نظرياً في 2005، وفي فبراير 2017 أثبت Google وCWI Amsterdam أول تصادم عملي عبر هجوم SHAttered — ملفا PDF مختلفان بنفس تجزئة SHA-1. أهملت NIST استخدام SHA-1 للتوقيعات الرقمية في 2011 (NIST SP 800-131A)، وتوقفت جميع المتصفحات الرئيسية ومراكز إصدار الشهادات عن قبول شهادات SHA-1 بحلول 2017. SHA-1 مكسورة لأي استخدام حساس أمنياً: التوقيعات، الشهادات، تخزين كلمات المرور. لكل العمل الجديد، انتقل إلى SHA-256.
لماذا يستخدم Git SHA-1 حتى الآن؟
يستخدم Git تجزئة SHA-1 لمعرّفات الكائنات (تجزئات commit وتجزئات الشجرة وتجزئات الكتل) لأنه صُمّم في 2005 حين كانت SHA-1 لا تزال موثوقة على نطاق واسع. استخدام Git ليس توقيعاً تعموياً — بل هو نظام عنونة بالمحتوى للكشف عن التلف العرضي، لا عن التلاعب المتعمد. يجري مشروع Git منذ الإصدار 2.29 (2020) انتقالاً أضاف دعم --object-format=sha256. حالياً، معرّفات SHA-1 لا تزال هي الطريقة التي يُخزَّن بها معظم تاريخ Git، مما يجعل هذه الأداة مفيدة لمراجعة تجزئات كائنات الـ commit.
هل يجب أن أنتقل من SHA-1 إلى SHA-256؟
نعم، لأي نظام حساس أمنياً. قائمة التحقق من الانتقال: (1) شهادات TLS — إن كنت لا تزال تملك شهادات موقّعة بـ SHA-1، استبدلها فوراً. (2) توقيعات API وHMAC — استبدل بـ HMAC-SHA-256. (3) كلمات مرور مخزّنة كتجزئات SHA-1 — انتقل إلى bcrypt أو Argon2. (4) مجاميع اختبارية للوثائق أو الحزم — أعد النشر بـ SHA-256. (5) مستودعات Git — اختَر وضع SHA-256 للمستودعات الجديدة إذا دعمته سلسلة أدواتك.
ما هو هجوم SHAttered؟
SHAttered (shattered.io، فبراير 2017) كان تصادماً عملياً لـ SHA-1 أنتجه فريق أمان Google وCWI Amsterdam. كلّف الهجوم نحو 110 سنة GPU وأنتج ملفَّي PDF مختلفَين ينتجان نفس تجزئة SHA-1: 38762cf7f55934b34d179ae6a4c80cadccbb7f0a. بحلول 2020، انخفضت تكلفة تصادم SHA-1 إلى نحو 45,000 دولار. قارن بـ SHA-256 التي لم يُعثر على أي تصادم فيها حتى الآن.
هل يمكن أن تحدث تصادمات SHA-1 عرضياً؟
الصدفة في الوقوع على تصادم SHA-1 دون جهد متعمد لا تزال احتمالاً فلكياً — ثمة 2^160 قيمة SHA-1 ممكنة، فاحتمال التصادم العشوائي تقريباً 1 من 10^24 لأي مدخلَين. الخطر هو الخصم المتعمد: مهاجم مصمّم يمكنه الآن صنع تصادم بنحو 45,000 دولار. تلف سجل Git عرضياً ليس تهديداً واقعياً من ضعف SHA-1. الخطر الحقيقي هو في الوثائق الموقّعة رقمياً والشهادات ومسارات توقيع الكود حيث قد يُبدّل مهاجم وثيقةً خبيثة بنفس تجزئة وثيقة موثوقة.
هل SHA-1 مقبولة للاستخدامات غير الأمنية كالمجاميع الاختبارية؟
للكشف عن تلف البيانات العرضي — تنزيل معطوب، بت مقلوب على القرص — SHA-1 كافية تقنياً نظراً لأن التصادمات العرضية لا تزال شبه مستحيلة. غير أن هناك سبباً قليلاً لاستخدام SHA-1 حتى للمجاميع الاختبارية غير الأمنية اليوم، لأن SHA-256 أبطأ هامشياً فقط وتدعمها جميع المعالجات الحديثة بتسريع عتادي. السبب الوحيد المشروع لاستخدام SHA-1 الآن هو التوافق مع نظام إرثي يقبل فقط بصمات سداسية من 40 حرفاً.
كم طول تجزئة SHA-1؟
تجزئة SHA-1 دائماً 160 بت تماماً، تُمثَّل بـ 40 حرفاً سداسياً عشرياً (2 حرف سداسي لكل بايت × 20 بايت). طول المخرجات ثابت بغض النظر عن حجم المدخلات. قارن: MD5 ينتج 32 حرفاً سداسياً (128 بت)، وSHA-256 ينتج 64 حرفاً (256 بت)، وSHA-512 ينتج 128 حرفاً (512 بت).
هل تُرسل مدخلاتي إلى أي خادم؟
لا. تُحسب تجزئة SHA-1 بالكامل في متصفحك باستخدام Web Crypto API (crypto.subtle.digest('SHA-1', data)). افتح أدوات المطور ← تبويب الشبكة أثناء التجزئة — ستجد صفر طلبات صادرة. الملفات التي تُفلتها تُقرأ عبر FileReader API وتُجزّأ محلياً؛ البايتات لا تغادر جهازك أبداً. هذا يجعل الأداة آمنة لتجزئة الوثائق السرية وبصمات الشهادات القديمة أو الكود المصدري الخاص.
لماذا يختلف مخرج SHA-1 عن sha1sum في سطر الأوامر؟
السبب في الغالب هو سطر جديد زائد. الأمر echo 'hello' | sha1sum يتضمن سطراً جديداً (\n) بعد 'hello'، فيجزّئ 'hello\n' لا 'hello'. استخدم echo -n 'hello' | sha1sum لحذفه. أسباب شائعة أخرى: ترميزات أسطر Windows (\r\n مقابل \n)، أو BOM UTF-8 في بداية الملف، أو اختلافات الترميز (UTF-8 مقابل Latin-1). هذه الأداة تُرمّز المدخلات كـ UTF-8 بدون BOM قبل التجزئة.

أدوات ذات صلة

عرض جميع الأدوات →

محلّل JWT — فك ترميز الرموز

أدوات الأمن

فك ترميز رموز JWT أونلاين مع محلّل JWT المجاني. افحص الترويسة والحمولة والتوقيع وانتهاء الصلاحية والخوارزمية والمطالبات فوراً. 100% في المتصفح — رمزك لا يغادر جهازك. بلا تسجيل، بلا تتبّع.

مولّد تجزئة MD5 — فوري ومجاني أونلاين

أدوات الأمن

أنشئ تجزئة MD5 وSHA-256 وSHA-1 وSHA-512 فوراً — أداة مجانية تعمل في متصفّحك بدون تتبّع أو رفع بيانات. الصق النص واحصل على التجزئة في ثانية. جرّبها الآن.

مولّد كلمات مرور عشوائية — قوي وآمن ومجاني

أدوات الأمن

ولّد كلمات مرور عشوائية قوية فوراً — أداة مجانية أونلاين تعمل في متصفّحك فقط. خصّص الطول والأحرف، دُفعات حتى 50 مع تحليل الإنتروبيا. بياناتك لا تغادر جهازك.

مولّد تجزئة SHA-256 وأداة المجموع الاختباري

أدوات الأمن

أنشئ تجزئات SHA-256 أونلاين مجاناً. جزّئ النصوص والملفات في متصفحك، تحقق من المجاميع الاختبارية، وانسخ مخرجات سداسية من 64 حرفاً. بدون تسجيل؛ بياناتك لا تغادر الصفحة.

مولّد تجزئة SHA-3 (إسفنج Keccak)

أدوات الأمن

أنشئ تجزئات SHA-3 أونلاين مجاناً. بنية إسفنج NIST FIPS 202 — معيار ما بعد SHA-2. مخرجات SHA3-256 في 64 حرفاً سداسياً. في المتصفح عبر js-sha3 محمّل كسولاً؛ بدون رفع.

مولّد تجزئة SHA-384

أدوات الأمن

أنشئ تجزئات SHA-384 أونلاين — مخرجات سداسية 96 حرفاً، محصّنة ضد امتداد الطول، متوافقة مع NSA Suite B. مزدوجة مع AES-256-GCM في TLS. جميع عمليات التجزئة في متصفحك عبر Web Crypto API.