حاسبة رمز التجزئة Fowler-Noll-Vo FNV1a-32
نُشرت: ١٨ فبراير ٢٠٢٥ م في ١٢:٠٨:٤١ ص UTC
حاسبة رمز التجزئة التي تستخدم دالة التجزئة Fowler-Noll-Vo 1a 32 بت (FNV1a-32) لحساب رمز التجزئة بناءً على إدخال النص أو تحميل الملف.Fowler-Noll-Vo FNV1a-32 Hash Code Calculator
تعد دالة التجزئة FNV-1a ذات 32 بت جزءًا من عائلة Fowler–Noll–Vo (FNV) من دوال التجزئة، وهي مصممة للتجزئة السريعة مع الحفاظ على توزيع جيد لقيم التجزئة. تُستخدم عادةً في تطبيقات مثل جداول التجزئة، ومجموعات الاختبار، وعمليات البحث عن البيانات. وهي تنتج رمز تجزئة مكون من 32 بت (4 بايت)، وغالبًا ما يتم تمثيله كرقم سداسي عشري مكون من 8 أرقام.
يعد الإصدار FNV-1a نسخة محسنة من وظيفة FNV-1 الأصلية مع أمان أفضل.
إفصاح كامل: لم أكتب التنفيذ المحدد لدالة التجزئة المستخدمة في هذه الصفحة. إنها دالة قياسية مضمنة في لغة برمجة PHP. لقد قمت فقط بإنشاء واجهة الويب لجعلها متاحة للجمهور هنا للراحة.
حول خوارزمية التجزئة Fowler-Noll-Vo FNV-1a 32 بت
أنا لست عالم رياضيات، ولكنني سأحاول شرح دالة التجزئة هذه باستخدام تشبيه يمكن لزملائي غير المتخصصين في الرياضيات فهمه. إذا كنت تفضل شرحًا علميًا صحيحًا ومخيفًا من الناحية الرياضية، فأنا متأكد من أنك ستجده في مكان آخر ;-)
أولاً، دعونا نفكر في خوارزمية FNV-1 على أنها وصفة لصنع عصير خاص. كل مكون تضيفه (مثل الفواكه أو الحليب أو العسل) يمثل جزءًا من البيانات - مثل الحروف أو الأرقام أو حتى الملف بأكمله.
الآن، الهدف هو خلط هذه المكونات بطريقة محددة للغاية بحيث يؤدي حتى أصغر تغيير في الوصفة (مثل إضافة حبة توت إضافية) إلى اختلاف مذاق العصير تمامًا. هكذا تعمل وظائف التجزئة - فهي تخلق "نكهة" فريدة (أو قيمة تجزئة) لكل مجموعة فريدة من المكونات (أو بيانات الإدخال).
الطريقة التي تقوم بها خوارزمية FNV-1 بذلك هي عملية متعددة الخطوات:
الخطوة 1: ابدأ بقاعدة (أساس الإزاحة)
فكر في هذا الأمر كما لو كنت تسكب قاعدة خاصة من العصير في الخلاط. هذه القاعدة هي نفسها دائمًا، بغض النظر عن المكونات التي تضيفها. في FNV-1، يُطلق على هذا "الأساس الإزاحي" - مجرد رقم بداية فاخر.
الخطوة 2: إضافة المكونات واحدة تلو الأخرى (معالجة البيانات)
الآن ابدأ بإضافة المكونات، واحدة تلو الأخرى - لنقل الفراولة، ثم الموز، ثم بعض العسل. كل من هذه المكونات يمثل بايتًا من البيانات.
الخطوة 3: المزج باستخدام مضاعف سري (FNV Prime)
بعد إضافة كل مكون، تضغط على زر الخلط، ولكن إليك المفاجأة: يضاعف الخلاط كل شيء بـ "رقم سحري" سري يسمى FNV prime. يساعد هذا في خلط الأشياء بشكل جيد حقًا.
الخطوة 4: إضافة لمسة من السحر (عملية XOR)
قبل إضافة المكون التالي، رش القليل من الغبار السحري (هذه هي عملية XOR). الأمر أشبه بقلب النكهة بطرق غير متوقعة، مما يضمن أن حتى التغييرات الصغيرة تحدث فرقًا كبيرًا.
الخطوة 5: كرر حتى الانتهاء
استمر في المزج ورش السحر بعد كل مكون جديد حتى تنتهي من معالجة كل شيء.
الخطوة 6: العصير النهائي (قيمة التجزئة)
عندما تنتهي، اسكب العصير. الطعم النهائي (قيمة التجزئة) فريد من نوعه بالنسبة لتلك التركيبة المحددة من المكونات. إذا أضفت حتى حبة توت أزرق واحدة إضافية، فسيكون الطعم مختلفًا تمامًا.
الإصدار المعروض هنا هو الإصدار المحسن FNV-1a 32 بت. إذا كنت بحاجة إلى الإصدار الأصلي، فلدي أيضًا آلة حاسبة لذلك: حاسبة رمز التجزئة Fowler-Noll-Vo FNV1-32