ما الذي تفعله هذه الأداة
تحسب تجزئة SHA-256 لأي نص أو ملف داخل متصفحك، وتُعيد ناتجاً ست عشرياً بطول 64 رمزاً. SHA-256 هي حصان العمل في التجزئة التشفيرية الحديثة: ناتج 256 بت، جزء من عائلة SHA-2 (FIPS 180-4)، صمّمتها NSA ونشرتها عام 2001. بعد أكثر من عقدين من التدقيق العلني، لا يُعرَف هجوم تصادم عملي على SHA-256. هي الخيار الافتراضي الصحيح لأي كود جديد يحتاج إلى تجزئة تشفيرية.
أين تُستخدم SHA-256
- شهادات TLS. كل شهادة HTTPS تُصدَر اليوم تحمل توقيع SHA-256 (أو أقوى).
- تجزئات صور الحاويات. يستخدم Docker و OCI و Kubernetes تجزئة SHA-256 لتعريف الصور بصورة فريدة. النسق
@sha256:abc...في مراجع الصور هو هذا بالضبط. - تجزئات كتل Bitcoin ومعرّفات المعاملات. يطبَّق proof-of-work في Bitcoin بتطبيق SHA-256 مرّتين؛ كل معاملة تُعرَّف بتجزئة SHA-256 الخاصة بها.
- Subresource Integrity (SRI).
<script integrity="sha256-...">يخبر المتصفح برفض السكربت إن لم تتطابق تجزئته. - التحقّق من إصدارات البرمجيات. عندما ينشر مشروع تحميلاً مرفقاً بمجموع تحقق SHA-256، فهذا هو المتوقَّع.
- النسق التالي لكائنات git. يدعم Git 2.29+ خوارزمية SHA-256 بديلاً عن SHA-1 للمستودعات الجديدة.
- توقيعات JWT (HS256 و RS256 و ES256). الـ «256» في تلك الأسماء هي SHA-256.
متى تختار SHA-256 على SHA-512
- التوافق. كل نظام يقبل تجزئة يقبل SHA-256. أمّا SHA-512 فمدعوم جيداً لكن ليس بالقدر نفسه.
- حجم الناتج. SHA-256 يتسع في 32 بايت، و SHA-512 في 64 بايت. للتطبيقات الحساسة للتخزين (أعمدة قواعد بيانات، معاملات روابط، حقول شهادات)، SHA-256 نصف الحجم.
اختر SHA-512 حين تجزّئ كثيراً من غيغابايتات البيانات على آلة 64 بت — يعمل SHA-512 على كلمات 64 بت أصلاً، وقد يكون أسرع هامشياً رغم كبر التلخيص.
متى لا يصلح SHA-256
- تخزين كلمات السر. التحذير ذاته كباقي التجزئات السريعة: استخدم bcrypt أو scrypt أو Argon2. SHA-256 سريع جداً — وحدة GPU حديثة تحسب المليارات في الثانية.
- مصادقة الرسائل. استخدم HMAC-SHA-256، لا SHA-256 وحدها.
HMAC(key, message)هي البنية؛ SHA-256 وحدها لا تأخذ مفتاحاً. - اشتقاق المفاتيح. استخدم HKDF أو PBKDF2-SHA-256، لا SHA-256 وحدها. تجزئة كلمة سر مباشرة لإنتاج مفتاح غير آمن.
متجهات الاختبار
متجهات اختبار SHA-256 الكانونية من FIPS 180-4:
- السلسلة الفارغة
""→e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 "abc"→ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad"abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"→248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1"The quick brown fox jumps over the lazy dog"→d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592
ملاحظات
لماذا 64 رمزاً؟ يُنتج SHA-256 256 بت = 32 بايت = 64 رمزاً ست عشرياً.
هل التنفيذ بزمن ثابت؟ نعم — يستخدم crypto.subtle.digest من WebCrypto، وهي بدائية أصيلة بزمن ثابت تعرضها المنصة. لا يوجد خروج مبكر يعتمد على المدخل ليُسرّب توقيتاً.
حدود حجم الملف؟ يجزّئ منتقي الملفات حتى 256 ميغابايت محلياً. الملفات الأكبر ممكنة تقنياً لكنها بطيئة على الخيط الرئيسي؛ لها فضّل sha256sum في طرفية.
لماذا تختلف تجزئة SHA-256 لديّ عن sha256sum؟ سطر جديد في النهاية. echo "hello" | sha256sum يضيف \n؛ لصق «hello» هنا لا يضيفه. استخدم echo -n أو منتقي الملفات للتطابق البايتي.
أدوات ذات صلة
- مولّد التجزئة — التجزئات الخمس جنباً إلى جنب
- SHA-512 — نفس مستوى الأمان، تلخيص أطول، أسرع على معالجات 64 بت
- SHA-1 — السلف، مهجور أمنياً
- Base64 — رمّز التلخيص الثنائي للنقل (مثلاً خصائص SRI)