ما هي التجزئة التشفيرية؟
تأخذ دالة التجزئة التشفيرية مدخلاً ذا طول اعتباطي وتُصدر بصمة ذات طول ثابت. المدخل ذاته يُنتج البصمة ذاتها دائماً؛ وقلب بِتّ واحد يغيّر نحو نصف بتّات الناتج. تحسب هذه الأداة أربع بصمات من الأكثر انتشاراً — MD5 (RFC 1321) وSHA-1 وSHA-256 وSHA-512 (عائلة SHA معرَّفة في FIPS 180-4) — لأي نص أو ملف تُقدِّمه، دون إرسال البيانات إلى خارج جهازك أبداً.
كيف يعمل مولِّد التجزئة هذا؟
تجري عملية التجزئة بالكامل على جهازك. تُوكَل SHA-1 وSHA-256 وSHA-512 إلى واجهة crypto.subtle.digest الأصلية في المتصفح؛ أما MD5 فيستخدم تنفيذاً مدمجاً في الملك العام لأن Web Crypto لا توفِّر MD5. الخطوات هي:
- يُقرأ مدخلك من حقل النص، أو يُقرأ ملفك من القرص إلى
ArrayBuffer. يُرمَّز النص بـ UTF-8 قبل حساب التجزئة لتطابق البصمة ما ينتجه استدعاءhashlib.sha256(text.encode())على الخادم. - تحشو كل خوارزمية الرسالة حتى حدود الكتلة وتعالجها كتلةً كتلة، خالطةً بايتات المدخل بالحالة الداخلية الجارية عبر سلسلة من العمليات البِتّية والحسابية النمطية.
- حين تُستهلَك الكتلة الأخيرة، تُغلَق الحالة الداخلية: تُنتج MD5 128 بِتّاً، وSHA-1 160 بِتّاً، وSHA-256 256 بِتّاً، وSHA-512 512 بِتّاً.
- تُنسَّق بايتات البصمة الخام إما سداسياً عشرياً بأحرف صغيرة أو بصيغة Base64 القياسية، حسب الترميز الذي تختاره فوق الألواح.
- تُكتب كل بصمة في حقل نصي للقراءة فقط وله زر نسخ. تفعيل الوضع المباشر يُعيد حساب البصمات مع كل ضغطة مفتاح لترى أثر الانهيار في الزمن الحقيقي.
ما هي خوارزمية التجزئة التي يجب استخدامها؟
تغطي الخوارزميات الأربع المتوفرة هنا كامل النطاق من المجاميع الاختبارية القديمة إلى التوصيات التشفيرية الراهنة. اختر بحسب الغاية لا بحسب الاعتياد:
- MD5 (128 بِتّاً) — سريعة ومنتشرة، لكنها مكسورة تشفيرياً. التصادمات العملية معلنة منذ 2004. لا تستخدمها إلا للمجاميع الاختبارية غير الأمنية: مفاتيح إزالة التكرار، وكسر الذاكرة المخبَّأة، وبصمات بنمط ETag، والتحقق من سلامة الملفات مقابل سجل موثوق.
- SHA-1 (160 بِتّاً) — مهجورة أيضاً للاستخدام الأمني. أظهر هجوم SHAttered تصادم PDF علنياً في 2017. لا تزال موجودة في معرِّفات كائنات Git القديمة، وشهادات TLS الأقدم، وتراكيب HMAC حيث لا يُسرِّب كسر التجزئة الأساسي المفتاحَ بعدُ. لا تعتمدها لأي عمل جديد.
- SHA-256 (256 بِتّاً) — الخيار الافتراضي الراهن للأغراض العامة. تُستخدم في بصمات شهادات TLS، وتجزئات كتل Bitcoin، ومجاميع تحققات إصدارات البرامج، وبصمات صور الحاويات، ومعظم خطوط أنابيب توقيع التعليمات البرمجية الحديثة. اختَرها عند الشك.
- SHA-512 (512 بِتّاً) — من عائلة SHA-2 ذاتها التي تنتمي إليها SHA-256، لكن بحالة داخلية أكبر وكلمات بعرض 64 بِتّاً. غالباً أسرع من SHA-256 على معالجات 64 بِتّاً، وهي الخيار المفضَّل حين تحتاج إلى هامش تصادم أكبر أو بصمات أطول لمفاتيح HMAC.
لماذا نستخدم مولِّد التجزئة هذا؟
- الخصوصية: تُجزَّأ كل بايت من المدخل محلياً داخل متصفحك. لا رفع للملفات، ولا تنقُّل في الشبكة، ولا سجلات على الخوادم. يقرأ منتقي الملفات من القرص مباشرة عبر File API.
- أربع بصمات في تمريرة واحدة: ألصق مرةً واقرأ MD5 وSHA-1 وSHA-256 وSHA-512 جنباً إلى جنب، وبدِّل بين الترميز السداسي عشري وBase64 دون إعادة الحساب.
- ناتج مطابق للمعايير: تُوكَل عائلة SHA إلى
crypto.subtle.digest، وهي تنفيذ FIPS 180-4 ذاته الذي يثق به نظام تشغيلك أصلاً. وMD5 يتبع RFC 1321 بايتاً بايتاً. - مصمَّم لأعمال التحقق: يُظهر الوضع المباشر أثر الانهيار وأنت تكتب؛ ولوحة الملفات تتعامل مع الملفات الثنائية بحجم ما تتسعه ذاكرة علامة التبويب لتتحقق من أرشيفات الإصدارات دون الحاجة إلى طرفية.
ما هي التطبيقات الشائعة لدوال التجزئة؟
تظهر دوال التجزئة عبر أعمال الهندسة اليومية:
- التحقق من التنزيلات: مقارنة بصمة SHA-256 لأرشيف إصدار بالقيمة المنشورة على موقع المشروع لتأكيد عدم العبث به أثناء النقل.
- تصحيح التكاملات: استنساخ بصمة MD5 أو SHA-256 ذاتها التي تتوقعها خدمة شريكة في توقيع طلب لتجد خطأ الإزاحة بمقدار واحد في باني السلسلة المعيارية لديك.
- العنونة بالمحتوى: توليد معرِّف حتمي من حمولة لاستخدامه مفتاحَ ذاكرة مخبَّأة، أو علامةَ إزالة تكرار، أو معرِّفَ كائن بنمط Git.
كيف يبدو مثال على التجزئة؟
تجزئة سلسلة ASCII hello تُنتج 5d41402abc4b2a76b9719d911017c592 بصمةَ MD5، وaaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d بصمةَ SHA-1، و2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824 بصمةَ SHA-256، وسلسلةً سداسية عشرية من 128 حرفاً تبدأ بـ 9b71d224bd62f3785d96d46ad3ea3d73... بصمةَ SHA-512. إضافة فراغ واحد في النهاية وإعادة حساب التجزئة يغيِّر كل بصمة تغييراً جذرياً.
يعمل مولِّد التجزئة هذا بالكامل داخل متصفحك بالاعتماد على البدائيات ذاتها التي يثق بها نظام تشغيلك: Web Crypto لعائلة SHA، وروتين MD5 صغير ومُدقَّق للبصمة الوحيدة التي لا توفِّرها Web Crypto. الصق، أو أفلِت ملفاً، أو انسخ بصمة — ولا شيء آخر يغادر علامة التبويب.