أدوات المطورين

مولد التجزئة ومجموعات الاختبار

احصل على MD5 و SHA-1 و SHA-256 و SHA-384 و SHA-512 للنصوص والملكات مرة واحدة. تحقق من ملف تم تنزيله مقابل مجموعة الاختبار الرسمية للتأكد من عدم التلاعب به. كل شيء محلي، لا يغادر شيء متصفحك.

5 خوارزميات في آن واحد مجموعات اختبار النصوص والملفات محلي، بدون رفع نتائج فورية
الأحرف بايتات UTF-8

الميزات

جميع التجزئات الخمس في صفحة واحدة

من البصمات السريعة إلى التوقيعات الآمنة — كل تجزئة يحتاجها المطورون، وموظفي العمليات والتحقق من التنزيلات.

01

خمس خوارزميات

يتم عرض MD5 و SHA-1 و SHA-256 و SHA-384 و SHA-512 مع أطوال البت للإخراج — لا مزيد من التبديل بين الأدوات.

02

الحساب في الوقت الفعلي

تجزئات النصوص أثناء الكتابة، لا حاجة لضغط زر. النتائج بخط أحادي المسافة — انقر على السطر للنسخ.

03

التحقق من سلامة الملف

أسقط مثبتًا، صورة قرص أو أرشيف وقارنه بمجموعة الاختبار الرسمية للتأكد من تنزيل غير متلاعب به.

04

محلي، بدون رفع

تستخدم عائلة SHA Web Crypto API المضمن في المتصفح. النصوص والملكات لا تغادر جهازك أبدًا — المحتوى الحساس آمن.

05

متسق مع UTF-8

يتم تجزئة النص كبايتات UTF-8، لذا تتطابق النتائج تمامًا مع md5sum و PHP md5() و Python hashlib.

06

نسخ بنقرة واحدة

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

ما يجب أن تعرفه عن التجزئات (الـ hashes)

الفكرة بسيطة، ولكن استخدام النوع الخطأ في الوظيفة الخطأ هو خطأ أمني حقيقي.

ما هي MD5 و SHA-1 بالضبط؟

تم تصميم MD5 (خوارزمية الملخص الرسالي 5) بواسطة رونالد ريفيست في معهد ماساتشوستس للتكنولوجيا (MIT) ونُشر في عام 1992 كـ RFC 1321، حيث ينتج ملخصًا ثابتًا طوله 128 بت (32 حرفًا سداسي عشري) كخليفة لـ MD4. تم تصميم SHA-1 بواسطة وكالة الأمن القومي الأمريكية ونُشر في عام 1995 كمعيار فيدرالي FIPS 180-1، حيث ينتج 160 بت. أصبح كلاهما أكثر خوارزميات التجزئة انتشارًا على نطاق واسع خلال العقدين التاليين - تُستخدم في المجموعات الاختبارية للملفات، وتخزين كلمات المرور، والتوقيعات الرقمية، ومعرفات التزامات Git. لاحظ أنها لا تزال تنتج ملخصات صحيحة اليوم؛ كلمة "غير آمن" تعني أن مقاومة التصادم الخاصة بها مكسورة، لا أن ناتجها خاطئ.

هل التجزئة والتشفير والتشفير/الترميز هي نفس الشيء؟

لا - كل منها يحل مشاكل مختلفة. التشفير/الترميز (مثل Base64 أو ترميز URL) هو تحويل تنسيق قابل للعكس يمكن لأي شخص إلغاؤه، ولا يوفر أي أمان. التشفير قابل للعكس بمفتاح: يصبح النص العادي نصًا مشفرًا ويفك التشفير باستخدام المفتاح الصحيح. التجزئة هي عملية أحادية الاتجاه، لا تحتوي على مفتاح، ولا يمكن استعادة الأصلي من الملخص - تستخدم للتعرفات، وفحوصات النزاهة، والتوقيعات. المفهومان الخاطئان الشائعان: اعتبار Base64 كـ "تشفير"، والقول بأن كلمة مرور تم "تشفيرها بـ MD5" - هذا هو التجزئة، وهي طريقة غير آمنة لتخزين كلمات المرور على أي حال.

لماذا لا يمكن عكس التجزئة إلى الأصلي؟

التجزئة هي دالة أحادية الاتجاه: يتم ضغط الإدخال بأي طول إلى ملخص ثابت الطول، مع تجاهل معظم المعلومات. تمامًا كما لا يمكن إعادة بناء جملة من عدد كلماتها، لا يمكن استنتاج الأصلي من الملخص. تم تصميم الخوارزميات الآمنة خصيصًا لجعل هذا العكس غير ممكن حسابيًا.

هل لا يزال من الممكن استخدام MD5 و SHA-1؟

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

لماذا تختلف تجزئتي عن أداة أخرى لنفس النص؟

ثلاثة أسباب شائعة: ① ترميز أحرف مختلف (تستخدم هذه الأداة دائمًا UTF-8؛ قد تستخدم الأدوات القديمة GBK أو Latin-1)؛ ② سطر جديد في النهاية - يضيف الأمر echo سطرًا جديدًا بشكل افتراضي (استخدم echo -n)؛ ③ مسافة غير طبيعية أو حرف غير مرئي عند النسخ. التجزئات حساسة لكل بايت واحد، لذا أي بايت واحد مختلف يغير النتيجة تمامًا.

لماذا لا يمكن تخزين كلمات المرور كـ MD5/SHA-256 عادي؟

التجزئات العادية سريعة. مع تسريب جدول التجزئة، يمكن للمهاجمين تجربة مليارات التخمينات في الثانية، وتقوم جداول قوس قزح (rainbow tables) بعكس البحث عن كلمات المرور الشائعة فورًا. تحتاج كلمات المرور إلى خوارزميات بطيئة عن قصد تعتمد على الذاكرة (bcrypt, scrypt, Argon2) مع ملح فريد لكل كلمة مرور، مما يجعل الهجمات القسرية مكلفة للغاية.

كيف أتحقق من نزاهة ملف تم تنزيله؟

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

أي من الخوارزميات الخمس يجب استخدامها

اختر بناءً على السيناريو. الخوارزميات الأحدث تنتج ملخصات أطول، ومقاومة للهجوم بشكل أفضل، وتكلف أكثر قليلاً للحساب.

الخوارزمية تم تقديمها طول الناتج الأمان الاستخدام النموذجي
MD5 1992 128 بت (32 حرفًا) معطلة؛ التصادمات عملية بصمات غير أمنة، إزالة التكرارات، توافق مع الإصدارات القديمة
SHA-1 1995 160 بت (40 حرفًا) التصادمات عملية منذ عام 2017 معرفات تاريخ Git والأنظمة القديمة الأخرى؛ لا تستخدم لأغراض أمنية جديدة
SHA-256 2001 256 بت (64 حرفًا) آمن اليوم مجموعات اختبارية للملفات، التوقيعات، شهادات TLS، بلوكشين — الافتراضي الشامل
SHA-384 2001 384 بت (96 حرفًا) آمن SHA-512 مقطوع للأنظمة التي تتطلب 384 بت
SHA-512 2001 512 بت (128 حرفًا) آمن توقيعات عالية الموثوقية؛ غالبًا أسرع من SHA-256 على وحدات المعالجة المركزية 64 بت

"آمن" تعني عدم وجود هجوم تصادم عمومي حتى الآن. لتخزين كلمات المرور استخدم bcrypt/Argon2 بغض النظر عن اختيار التجزئة.

المجموعات الاختبارية: كيف تتحقق فعليًا من ملف تم تنزيله

ما الغرض من سلسلة MD5 أو SHA-256 الموجودة على صفحة التنزيل هذه، كيف تقارنها، وما الذي تقارن به — كل ذلك في قسم واحد.

لماذا التحقق أصلاً

الملف الموجود على قرصك ليس بالضرورة نفس الموجود على الخادم. مقارنة المجموع الاختباري لمدة عشر ثوانٍ تحمي من ثلاثة أنواع من المشاكل:

تلف أثناء النقل

الملفات الكبيرة التي يتم تنزيلها بشكل مستمر عبر شبكات غير مستقرة غالبًا ما تكتسب بايتات غريبة عن غير قصد؛ استكشاف أخطاء المثبت التالف يستغرق وقتًا أطول بكثير من عشر ثوانٍ.

المرايا غير المتزامنة

العديد من عمليات التنزيل تأتي فعليًا من مرايا أو شبكات توزيع المحتوى (CDNs)، حيث يمكن أن يؤدي تأخر المزامنة أو أخطاء التخزين المؤقت إلى إعطائك إصدارًا قديمًا — أو نصف الملف.

التلاعب المتعمد

عند اختراق مصدر التنزيل أو اختراق شبكة عامة، يمكن أن يتم إدخال أبواب خلفية في الملفات. في عام 2016 تم اختراق موقع Linux Mint وتم تبديل روابط التنزيل الخاصة به بـ ISO مزود بباب خلفي — كان رد المشروع الأول هو حث الجميع على التحقق من المجموع الاختباري.

ما هو المجموع الاختباري

يقوم الناشر بتجزئة الملف على خادمه وينشر النتيجة على صفحة التنزيل؛ بعد التنزيل، تقوم بتجزئته مرة أخرى محليًا. إذا تطابقت السلسلتان حرفًا بحرف، فإن بايتات الملف هي بالضبط ما أصدره الناشر - لا تالف ولا مُستبدل. الفحص حساس لكل بايت: تغيير بايت واحد يغير القيمة بالكامل. بشكل عام، تتضمن المجموعات الاختبارية مخططات أبسط مثل CRC32 التي فقط تكتشف التلف العرضي، بينما تتطلب التجزئات المشفرة مثل MD5/SHA أيضًا مقاومة للتزوير المتعمد.

تحقق من ملف في ثلاث خطوات

  1. 1
    احصل على المجموعة الاختبارية الرسمية

    في صفحة التنزيل، ابحث عن قيمة MD5 / SHA-256 المنشورة (غالبًا ما تُسمى "المجموعة الاختبارية" أو تُقدم كملف مصاحب .sha256) وانسخ السلسلة بأكملها.

  2. 2
    أفلت الملف ولصق

    انتقل إلى علامة التبويب "مجموعة الملف الاختبارية" أعلاه، أفلت الملف الذي تم تنزيله، ولصق المجموعة الاختبارية في المربع الموجود فوق النتائج.

  3. 3
    اقرأ النتيجة حسب اللون

    تكتشف الأداة الخوارزمية من طول القيمة: الأخضر يعني أن الملف يتطابق مع الإصدار الرسمي بالضبط وآمن للاستخدام؛ الأحمر يعني أنه قد يكون تالفًا أو مُعبثًا به - لا تقم بتشغيله.

قراءة المجموعات الاختبارية على المواقع الرسمية

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

# 1. سطر واحد: القيمة فقط
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

# 2. تنسيق sha256sum: القيمة + مسافتان + اسم الملف (ملف البيان SHA256SUMS يحتوي على العديد من هذه الأسطر)
a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a  ubuntu-24.04.iso

# 3. تنسيق BSD: الخوارزمية (اسم الملف) = القيمة
SHA256 (ubuntu-24.04.iso) = a0570aa01532917be820a37994710cf09b6eba198bf9543c27be938c5f09e60a

MD5 أو SHA-256

تحقق مما يوفره الموقع الرسمي، ولكن إذا كان عليك الاختيار: MD5 كافٍ تمامًا ضد التلف العرضي أثناء النقل (أي تغيير عشوائي يغير MD5 دائمًا تقريبًا). ضد العبث المتعمد - برامج الأمان، الشهادات، الحزم الموقعة - تحتاج إلى SHA-256 أو أقوى، لأن هجمات التصادم العملية تسمح للمهاجمين بصنع ملفين مختلفين لهما نفس MD5. تُروى هذه القصة في "تاريخ الأمان" أدناه.

التحقق من سطر الأوامر بدلاً من ذلك

على Linux و macOS، تقبل أدوات المجموعات الاختبارية -c للتحقق من ملف بيان كامل تلقائيًا - لا حاجة إلى مقارنة يدوية. الأوامر المضمنة في Windows تحسب القيمة فقط، التي تقارنها بنفسك بالسلسلة الرسمية.

البيئة أمر التحقق
Linux sha256sum -c SHA256SUMS (يتحقق من كل ملف مدرج في ملف البيان)
macOS shasum -a 256 -c checksum.txt
فحص سريع لقيمة واحدة echo "official-value filename" | sha256sum -c - (يطبع OK عند النجاح)
Windows احسب بـ Get-FileHash <file> -Algorithm SHA256، ثم قارن بالقيمة الرسمية

تاريخ أمان موجز: كيف تم كسر MD5

لم يفشل MD5 بين عشية وضحاها - من الشق الأول في الأوساط الأكاديمية إلى الشهادات المزورة في البرية، استغرق الأمر عقدين.

  1. 1992

    تم نشر MD5

    أصدر رونالد ريفست خوارزمية MD5 في RFC 1321. كانت خوارزمية سريعة وسهلة التنفيذ وتنتج دائمًا ملخصًا بطول 128 بت، لذلك سرعان ما أصبحت المعيار الفعلي لمجاميل الملفات وتخزين كلمات المرور — وكانت تعتبر آمنة من الناحية التشفيرية.

  2. 2004

    كشف فريق وانغ شياويون عن تصادمات كاملة لـ MD5

    في مؤتمر CRYPTO عام 2004، أظهر فريق بقيادة الرياضي الصيني وانغ شياويون هجوم تصادم كامل على MD5 — حيث قام ببناء ملفين بمحتويات مختلفة ولكن نفس التجزئة (أولاً في حوالي ساعة واحدة على حاسب فائق IBM P690؛ ومع التحسينات اللاحقة انخفض الوقت إلى ثوانٍ على أجهزة عادية). وقد زولت خاصية مقاومة التصادم التي وعدت بها MD5؛ والتصفيق الحار الذي تلا ذلك أصبح أحد أكثر اللحظات شهرة في التشفير.

  3. 2008

    شهادات مزورة تضرب الإنترنت الحقيقي

    استخدم مارك ستيفنسون وألكسندر سوتيروف وآخرون تصادمًا ببادئات محددة لتزوير شهادة مرجع CA وسيطة موثوقة من المتصفحات: شهادات ذات بادئات مختلفة تحمل نفس التوقيع. أصبح من الممكن للمهاجم إصدار شهادات HTTPS "صالحة" لأي موقع وهمي. توقفت مراجع الشهادات عن إصدار شهادات MD5 بعد ذلك بفترة قصيرة.

  4. 2012

    برنامج Flame الضار يهاجم Windows عبر MD5

    استخدم برنامج Flame الضار الممول من الدولة تصادمًا لـ MD5 لجعل سلطة ترخيص خادم الطرف الخاص بشركة Microsoft توقع شهادة توقيع كود مزورة، مما سمح له بالانتشار عبر الشرق الأوسط متنكرًا كتحديث موقعة من Microsoft. كان هذا أول هجوم في العالم الحقيقي يستخدم تصادمًا لـ MD5؛ قامت Microsoft بإلغاء الشهادة في إصلاح طارئ.

  5. 2017

    SHAttered: SHA-1 يسقط

    نشرت Google ومعهد CWI الهولندي (مارك ستيفنس وآخرون) ملفين PDF مختلفين بنفس تجزئة SHA-1 — بتكلفة تبلغ حوالي 6500 سنة من العمل على المعالج و110 سنة على وحدات معالجة الرسوميات. توقفت المتصفحات عن الوثوق بشهادات SHA-1 بعد ذلك بفترة قصيرة، وسرعت منصات Git من عملية الانتقال بعيدًا عنها. عصر الـ 160 بت قد انتهى.

ملاحظة مهمة: هجوم التصادم لا "يكسر" تجزئة أي ملف موجود — بل يبني ملفين محددين ينتجان نفس القيمة التجزئية. ولكن بالنسبة للتوقيعات والشهادات، هذا يكفي بالفعل للتزوير المميت.

التجزئة من سطر الأوامر

عندما لا يكون المتصفح متاحًا، يأتي كل نظام تشغيل بأمر مدمج (SHA-256 موضح).

البيئة الأمر
Linux / macOS sha256sum filename (على macOS: shasum -a 256 filename)
Windows PowerShell Get-FileHash filename -Algorithm SHA256
Windows CMD certutil -hashfile filename SHA256

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

أمثلة بسيطة بأربع لغات شائعة عند كتابة النصوص البرمجية أو دمج واجهات البرمجة التطبيقية.

JavaScript
async function sha256Hex(data) {
  const bytes = typeof data === "string"
    ? new TextEncoder().encode(data)
    : new Uint8Array(data);
  const digest = await crypto.subtle.digest("SHA-256", bytes);
  return [...new Uint8Array(digest)]
    .map((b) => b.toString(16).padStart(2, "0"))
    .join("");
}

// Text
console.log(await sha256Hex("hello"));

// Files: digest accepts an ArrayBuffer directly
const buf = await file.arrayBuffer();
console.log(await sha256Hex(buf));

يدعم Web Crypto الأصلي في المتصفح فقط عائلة SHA ويتطلب HTTPS أو localhost؛ يحتاج MD5 إلى مكتبة طرف ثالث.

PHP
echo hash('sha256', 'hello');        // 64 hex characters
echo md5('hello');                   // same as hash('md5', 'hello')

// Streamed: hashes the file without loading it into memory
echo hash_file('sha256', 'setup.exe');

تدعم الدوال hash() و hash_file() md5 و sha1 و sha256 و sha512 وغيرها؛ تتم تجزئة الملف بشكل متدفق، لذا تستخدم ذاكرة قليلة.

Python
import hashlib

print(hashlib.sha256(b"hello").hexdigest())
print(hashlib.md5(b"hello").hexdigest())

# Large files: streamed, low memory (Python 3.11+)
with open("setup.exe", "rb") as f:
    print(hashlib.file_digest(f, "sha256").hexdigest())

لا تحتاج مكتبة hashlib القياسية إلى تثبيت؛ استخدم file_digest() للتجزئة المتدفقة للملفات الكبيرة (Python 3.11+).

Rust
use sha2::{Digest, Sha256};
use md5::Md5;

// Text
println!("{:x}", Sha256::digest(b"hello"));
println!("{:x}", Md5::digest(b"hello"));

// Large files: streamed, low memory
let mut file = std::fs::File::open("setup.exe")?;
let mut hasher = Sha256::new();
std::io::copy(&mut file, &mut hasher)?;
println!("{:x}", hasher.finalize());

التجزئة ليست في المكتبة القياسية؛ أضف حزم RustCrypto sha2 و md-5 في Cargo.toml. مع تمكين ميزة std، تقوم الدالة io::copy بتحويل الملفات إلى مجزئ بشكل متدفق.

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

هل تم رفع نصي وملفاتي؟

لا. يتم حساب كل شيء داخل متصفحك: تستدعي عائلة SHA واجهة برمجة تطبيقات Web Crypto المضمنة، ويعمل MD5 في JavaScript الخاص بالصفحة. تستمر الأداة في العمل بدون اتصال بالشبكة — جربها مع ملف حساس.

لماذا لا يزال للنص الفارش هاش؟

تحدد خوارزميات الهاش مخرجات ثابتة فريدة حتى لصفر بايت. MD5 للنص الفارغ هو d41d8cd98f00b204e9800998ecf8427e و SHA-256 يبدأ بـ e3b0c442. هذه الأداة تخفي النتائج ببساطة عندما يكون الإدخال فارغًا حتى لا تقوم بنسخها عن طريق الخطأ.

هل يمكنها تجزئة ملفات بأي حجم؟

يعتمد ذلك على ذاكرة المتصفح المتاحة — عادةً ما تكون برامج التثبيت وصور الأقراص بحجم بضع مئات من MB على ما يرام. يتم قراءة الملفات في الذاكرة في عملية واحدة، لذلك بالنسبة للملفات متعددة GB، يُفضل استخدام أدوات سطر الأوامر (sha256sum, certutil).

لماذا يكون للهاشات أطوال مختلفة؟

يتم تحديد الطول بواسطة الخوارزمية: MD5 هو 32 حرفًا سداسي عشري، SHA-1 هو 40، SHA-256 هو 64 و SHA-512 هو 128. حرفان سداسيان لكل بايت — والطول مستقل عن حجم الإدخال: ملف واحد بايت وملف متعدد GB ينتجان كلاهما 64 حرفًا باستخدام SHA-256.

هل يمكنني استخدامها لبناء توقيعات API؟

نعم. توقع العديد من المنصات المفتوحة الطلبات عن طريق تجزئة "المعلمات + السري" باستخدام MD5 أو SHA-256. هذه الأداة رائعة للتحقق من قيمة التوقيع أثناء التصحيح؛ في الإنتاج، قم بحساب الهاشات في مكتبة لغة جانب الخادم الخاص بك ولا تقم أبدًا بتضمين السري في شفرة الواجهة الأمامية.

كيف أقارن بين مجموع التحقق بهذه الأداة؟

انتقل إلى علامة التبويب "مجموع التحقق للملف"، اسحب وأفلت الملف، ولصق مجموع التحقق من الموقع الرسمي في المربع الموجود فوق النتائج. تكشف الأداة تلقائيًا عن الخوارزمية حسب الطول (32 حرفًا MD5، 40 SHA-1، 64 SHA-256، 96 SHA-384، 128 SHA-512): يتحول الصف المطابق إلى أخضر مع ملاحظة "تمت الموافقة" عندما يتطابقان، وإلى أحمر عندما لا يتطابقان. يتم تجاهل حالة الأحرف والمسافات المحيطة وفواصل الأسطر تلقائيًا.

الأدوات ذات الصلة

أدوات أخرى للتشفير والعملات الرقمية وكلمات المرور.