ماشین حساب کد هش MurmurHash3C
منتشر شده: ۱۸ فوریهٔ ۲۰۲۵ ساعت ۰:۳۴:۳۸ (UTC)
ماشین حساب کد هش که از تابع هش MurmurHash3C برای محاسبه کد هش بر اساس ورودی متن یا آپلود فایل استفاده می کند.MurmurHash3C Hash Code Calculator
MurmurHash3 یک تابع هش غیر رمزنگاری است که توسط آستین اپلبی در سال 2008 طراحی شده است. به دلیل سرعت، سادگی و ویژگی های توزیع خوب، به طور گسترده برای هش کردن همه منظوره استفاده می شود. توابع MurmurHash به ویژه برای ساختارهای داده مبتنی بر هش مانند جداول هش، فیلترهای بلوم، و سیستمهای حذف مجدد دادهها موثر هستند.
نوع ارائه شده در این صفحه، نوع 3C است که برای سیستم های 32 بیتی بهینه شده است، مانند نوع 3A. با این حال، بر خلاف نوع 3A، کدهای هش 128 بیتی (16 بایتی) تولید می کند که معمولاً به عنوان یک عدد هگزادسیمال 32 رقمی نشان داده می شود.
افشای کامل: من پیاده سازی خاصی از تابع هش مورد استفاده در این صفحه را ننوشتم. این یک تابع استاندارد است که در زبان برنامه نویسی PHP گنجانده شده است. من فقط رابط وب را ایجاد کردم تا برای راحتی در اینجا در دسترس عموم قرار دهم.
درباره الگوریتم هش MurmurHash3C
من یک ریاضیدان نیستم، اما سعی می کنم این تابع هش را با استفاده از قیاسی توضیح دهم که همکارهای غیرریاضیدانم بتوانند آن را درک کنند. اگر یک توضیح ریاضی از لحاظ علمی صحیح و کامل را ترجیح می دهید، مطمئن هستم که می توانید آن را در جای دیگری پیدا کنید ;-)
حالا تصور کنید یک جعبه بزرگ از آجرهای لگو دارید. هر بار که آنها را به روشی خاص مرتب می کنید، عکس می گیرید. مهم نیست که چیدمان آن چقدر بزرگ یا رنگارنگ باشد، دوربین همیشه یک عکس کوچک و با اندازه ثابت به شما می دهد. آن عکس نمایانگر خلقت لگو شماست، اما به شکل فشرده.
MurmurHash3 کاری مشابه با داده ها انجام می دهد. هر نوع داده ای (متن، اعداد، فایل ها) را می گیرد و آن را به یک "اثر انگشت" کوچک و ثابت یا مقدار هش کوچک می کند. این اثرانگشت به رایانهها کمک میکند تا به سرعت دادهها را بدون نیاز به نگاه کردن به همه چیز شناسایی، مرتبسازی و مقایسه کنند.
تشبیه دیگر مانند پختن یک کیک است و MurmurHash3 دستور العمل تبدیل آن کیک به یک کیک کوچک (هش) است. این یک فرآیند سه مرحله ای خواهد بود:
مرحله 1: تکه تکه کردن (شکستن داده ها)
- ابتدا، MurmurHash3 داده های شما را به تکه های مساوی تقسیم می کند، مانند برش دادن کیک به مربع های یکسان.
مرحله 2: مانند دیوانه مخلوط کنید (مخلوط کردن تکه ها)
- هر قطعه یک فرآیند اختلاط وحشی را طی می کند:
- برگرداندن: مانند چرخاندن پنکیک، تکه ها را دوباره مرتب می کند.
- هم زدن: مواد تصادفی (عملیات ریاضی) را برای مخلوط کردن همه چیز اضافه می کند.
- Squishing: داده ها را به هم فشار می دهد تا مطمئن شود هیچ قطعه اصلی برجسته نیست.
مرحله 3: تست طعم نهایی (نهایی)
- پس از مخلوط کردن همه تکهها، MurmurHash3 یک بار نهایی را به هم میزند تا مطمئن شود که حتی کوچکترین تغییر در دادههای اصلی طعم (هش) را کاملاً تغییر میدهد.