حاسبة تجزئة MurmurHash3
اكتب Hello, world! لتحصل على c0363e43: تجزئة MurmurHash3 بنسخة x86 و32 بت لـ 13 بايت بالبذرة الافتراضية 0. مناسبة لفحص جداول التجزئة ومفاتيح التقسيم وقيم الاختبار، لا لحماية كلمات المرور. مجانًا في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- Hello, world!
- النتيجة
- c0363e43
- تجزئة Murmur3
- c0363e43
- Hex
- c0363e43
- البذرة
- 0
MurmurHash3 تجزئة غير تشفيرية سريعة صممها Austin Appleby لجداول التجزئة ومفاتيح التقسيم ومرشحات بلوم وبصمات المحتوى حيث تهم السرعة والتوزيع الجيد أكثر من مقاومة التصادم أمام خصم. المتغير x86 الشائع ب 32 بت يخلط الرسالة في كتل من أربعة بايتات بثوابت منشورة، يطوي ذيلًا قصيرًا، وينهي بمزج نهائي يعتمد على الطول فينتج كلمة واحدة بلا إشارة من اثنين وثلاثين بتًا. غالبًا يحتاج المطورون تلك الكلمة كثمانية أرقام ست عشرية صغيرة للتركيبات والسجلات والفحوصات عبر اللغات، مع بذرة اختيارية حتى تنتج السلسلة نفسها ملخصات مستقرة مختلفة في تصاميم متعددة الحاويات. تقبل أداة تجزئة MurmurHash3 هذه نصًا غير فارغ، ترمّزه UTF-8، وتطبّق بذرة اختيارية في المدى الكامل للاثنين وثلاثين بتًا بلا إشارة، وتعيد ملخص hex مع تسمية الخوارزمية والبذرة وعدد البايتات وملخصًا قصيرًا.
ما الذي يحسبه MurmurHash3 x86 ب 32 بت ولماذا تهم البذرة
يعامل MurmurHash3 x86 ب 32 بت كل رسالة كتسلسل مرتب من الثمانيات. يُهيأ سجل التجزئة بالبذرة التي يزوّدها المستدعي، وتكون صفرًا عند الحذف. تُعالَج الدفق في كتل من أربعة بايتات little-endian: تُضرب كل كتلة بالثابت c c تسعة e اثنان d خمسة واحد، وتُدار يسارًا خمس عشرة بتة، وتُضرب ب واحد b ثمانية سبعة ثلاثة خمسة تسعة ثلاثة، ثم تُمزج في التجزئة الجارية بدوران يساري بثلاث عشرة بتة وضرب-جمع مع خمسة و e ستة خمسة أربعة ستة b ستة أربعة.
أي بايتات ذيل متبقية من واحد إلى ثلاثة تُمزج بنفس الثوابت قبل خطوة إنهاء تعمل xor على الطول الكلي، وتطبّق ضربَي انهيار مع ثمانية خمسة e b c a ستة b و c اثنان b اثنان a e ثلاثة خمسة، وتتخلل إزاحات يمينية. تنسّق الأداة النتيجة بلا إشارة كثمانية أرقام hex صغيرة حتى لا تختلف التركيبات حول حالة الأحرف أو الطباعة بإشارة أو بدونها أو الحشو.
تشمل الفحوصات المعروفة سلسلة ASCII foo ببذرة صفر فتعطي f ستة a خمسة c أربعة اثنان صفر، و Hello فاصلة مسافة world علامة تعجب ببذرة صفر فتعطي c صفر ثلاثة ستة ثلاثة e أربعة ثلاثة. تغيير البذرة يغيّر ملخص البايتات نفسها عمدًا لمجموعات متعددة التجزئة والخرائط المقسّمة. ولأن MurmurHash3 لا يقاوم التصادم أمام مهاجم دافع، وليس مفتاحًا للسرية، ولا يصلح لكلمات المرور أو التوقيعات، عاملوه كمعرّف محتوى سريع أو مازج لجدول تجزئة—لا كإثبات أصالة.
فضّلوا ملخصات عائلة SHA عندما تكون نية البحث تجزئة تشفيرية لا تجزئة MurmurHash3 غير تشفيرية.
عند حذف seed تستخدم الخوارزمية صفرًا. تُرمَّز السلسلة UTF-8 قبل حلقة Murmur، فتسهم المحارف متعددة البايتات بكل بايت وحدة ترميز كما يفعل وقت تشغيل لغة عند تجزئة نفس تدفق UTF-8. تركيب كلاسيكي: text يساوي Hello فاصلة مسافة world علامة تعجب مع البذرة الافتراضية يعطي hex c صفر ثلاثة ستة ثلاثة e أربعة ثلاثة.
تركيب آخر: نفس السلسلة ببذرة اثنين وأربعين تعطي كلمة hex مختلفة من ثماني أرقام تحت نفس تسمية الخوارزمية. ثبّتوا مسار نجاح وخطأ بذرة غير صالحة في التكامل المستمر حتى لا تُنشر تغييرات ثوابت أو دورانات عرضية دون اكتشاف. تُحذف الحقول الاختيارية الفارغة بدل إخراجها null وفق عقد العارض التصريحي لنماذج ويب نظيفة.
أين تفيد تجزئة MurmurHash3
يستخدم مؤلفو أوقات تشغيل اللغات وطلاب الأنظمة حاسبة تجزئة MurmurHash3 للتحقق يدويًا من مزج الكتل وخطوات الإنهاء أمام الثوابت المنشورة دون كتابة حلقة انهيار كاملة في كل لغة. تحتاج منصات التدريس وإضافات LMS إلى مُوحيح حتمي يرفض الإدخال الفارغ والبذور السيئة بدل اللف الصامت، حتى يميّز المصححون الآليون أخطاء الإعداد عن الملخصات الحقيقية. تستفيد مواقع المحتوى التي تترتب لعبارة تجزئة MurmurHash3 أو حاسبة murmurhash3 من أداة حية يطابق مسارها المجاني مسار الأتمتة المدفوعة بايتًا ببايت على نفس الوحدة النقية.
إخفاقات التحقق لا تستهلك الرصيد بعد الرفض. اقرنوا مع صفحات FNV-1 أو Adler-32 أو CRC أو التجزئة التشفيرية فقط عندما تبتعد نية البحث عن MurmurHash3—وحافظوا على تركيز هذه الصفحة على MurmurHash3 x86 ب 32 بت لتبقى نية SEO حادة ولا تلتهم صفحات المجموع الاختباري أو الملخص ذات الصلة.
حالات الاستخدام
مفاتيح جداول التجزئة والتقسيم
أنشئوا مفاتيح hex مستقرة من MurmurHash3-x86-32 لسلاسل قصيرة تُستخدم كحاويات خريطة أو معرفات شظية أو أقسام أعلام ميزات، مع بذرة اختيارية لتخطيطات متعددة التجزئة.
عروض صفية ل MurmurHash3
يعرض المدرسون قيم الفحص الكلاسيكية ل foo و Hello, world! عند بذرة صفر ويتيحون للطلاب إعادة حساب سلاسل قصيرة أخرى دون تثبيت وحدة أصلية.
تركيبات CI لمساعدات التجزئة غير التشفيرية
تثبت الأنابيب مخرجات hex حتمية من MurmurHash3 وخطأ البذرة غير الصالحة حتى تفشل فورًا تغييرات الثوابت أو الدوران أو اللف العرضية.
الأسئلة الشائعة
ما قيم البذرة المسموحة؟
يجب أن تكون البذرة عددًا صحيحًا من 0 إلى 4294967295 شاملًا. احذفوها لاستخدام 0.
ماذا يحدث إذا كان النص فارغًا؟
سلسلة غير فارغة مطلوبة؛ ولا يُعامل الإدخال الفارغ كتجزئة ناجحة.
هل MurmurHash3 تجزئة تشفيرية؟
لا. MurmurHash3 تجزئة غير تشفيرية سريعة لجداول التجزئة ومفاتيح المحتوى. استخدموا SHA-256 أو ما شابه عندما تحتاجون مقاومة تصادم أو مصادقة.
هل حاسبة MurmurHash3 مجانية في المتصفح؟
نعم، مجانية في متصفحك: أدخل النص وأضف بذرة إن أردت، فتظهر التجزئة بالنظام الست عشري من 32 بت، مثل c0363e43 لعبارة Hello, world!.
هل يغيّر تغيير البذرة قيمة التجزئة؟
نعم. النص نفسه يعطي تجزئة مختلفة مع كل بذرة، وهذا مقصود: يتيح لك بناء عدة تجزئات مستقلة لمرشح بلوم أو جدول مقسَّم. وإذا تركت البذرة فارغة تُستخدم القيمة 0.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/murmur3 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello, world!"}'const res = await fetch("https://api.kit.forhosting.com/enc/murmur3", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello, world!"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/murmur3",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello, world!"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/murmur3", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello, world!"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello, world!"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/murmur3", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "Hello, world!"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.murmur3",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
يُرفض الإدخال الفارغ والبذور غير الصالحة ب invalid_input حتى لا يخلط المستدعي حقلًا مفقودًا أو بذرة سيئة مع تجزئة حقيقية. مسار المتصفح المجاني وواجهة API المدفوعة مسبقًا يتشاركان وحدة نقية واحدة، فتطابق تركيبات القاعة وأنابيب الإنتاج دائمًا كلمة hex للسلسلة والبذرة نفسيهما.
عقد الإدخال والتحقق من البذرة وشكل استجابة JSON
أرسلوا جسم JSON بحقل سلسلة إلزامي اسمه text: أي تسلسل غير فارغ من المحارف تريدون تجزئته. تُقبل الأسماء البديلة input و value و s و data و message و payload لنفس الحقل حتى تبقى قوالب SDK وإرسالات النماذج مرنة. الحقل الاختياري seed عدد صحيح من صفر حتى أربعة مليارات ومئتين وأربعة وتسعين مليونًا وتسعمئة وسبعة وستين ألفًا ومئتين وخمسة وتسعين شاملًا (المدى الكامل للاثنين وثلاثين بتًا بلا إشارة)؛ تُقبل البدائل salt و init. غياب text أو قيمة غير سلسلة أو سلسلة فارغة تفشل ب invalid_input ورسالة واضحة بأن سلسلة غير فارغة مطلوبة؛ ولا تُفوتر تلك الإخفاقات على API المدفوعة مسبقًا. البذرة غير الصالحة—غير رقمية أو كسرية أو منطقية أو سالبة أو أكبر من اثنين مرفوعًا إلى اثنين وثلاثين ناقص واحد—تفشل أيضًا ب invalid_input ورسالة صريحة لبذرة غير صالحة حتى يصحّح المشغّلون الإعداد دون لفٍّ وحداتٍ صامت. عند النجاح يتضمن الجسم result و murmur3 و hex كلها بنفس ملخص hex ذي ثماني أرقام صغيرة؛ و seed بالقيمة المستخدمة؛ و algorithm ثابتًا على MurmurHash3-x86-32؛ و input_bytes مساويًا لطول UTF-8؛ و text صدى للإدخال؛ و message يلخص عدد البايتات والبذرة ونتيجة hex.
أين تضيف واجهة API لتجزئة MurmurHash3 قيمة وكيف يعمل التسعير
تقارن أدلة الدعم مفتاح تقسيم أو قسم ذاكرة مؤقتة من السجلات مع MurmurHash3 لسلسلة الحمولة التي يعيدون كتابتها في ودجت المتصفح المجاني بنفس البذرة. استخدموا الأداة المجانية في المتصفح للفحوصات الفردية؛ واستدعوا واجهة API المدفوعة مسبقًا ل KIT من الخلفيات والدوال بلا خادم وحزم SDK عندما تحتاجون عقدًا مستقرًا تحت الرصيد بسعر $0.002 لكل عنصر ناجح. أبقوا الحمولات بأحجام نص عادية مناسبة لاستدعاء عنصر في عزل Worker؛ هذه الأداة للسلاسل القصيرة ومقتطفات البروتوكول لا لكتل ثنائية بعدة ميغابايتات.
أسئلة تقنية
كيف أحسب تجزئة MurmurHash3 لنص؟
أرسلوا JSON بحقل سلسلة غير فارغ text وبذرة اختيارية seed (uint32، الافتراضي 0). ترمّز الواجهة API السلسلة UTF-8 وتشغّل MurmurHash3 x86 ب 32 بت وتعيد التجزئة كثمانية أرقام hex صغيرة في result و murmur3 و hex.
هل حاسبة MurmurHash3 مجانية؟
تعمل أداة المتصفح مجانًا على جهازكم. استدعاءات API تستخدم رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل عنصر ناجح؛ وإخفاقات التحقق لا تُحصّل.