ماشین حساب کد هش MurmurHash3F
منتشر شده: ۱۸ فوریهٔ ۲۰۲۵ ساعت ۰:۲۸:۵۹ (UTC)
آخرین به روز رسانی: ۱۲ ژانویهٔ ۲۰۲۶ ساعت ۱۳:۳۱:۳۱ (UTC)
MurmurHash3F Hash Code Calculator
MurmurHash3 یک تابع هش غیر رمزنگاری است که توسط آستین اپلبی در سال ۲۰۰۸ طراحی شده است. به دلیل سرعت، سادگی و خواص توزیع خوب، به طور گسترده برای هشینگ عمومی استفاده میشود. توابع MurmurHash به ویژه برای ساختارهای داده مبتنی بر هش مانند جداول هش، فیلترهای بلوم و سیستمهای حذف دادههای تکراری مؤثر هستند.
نوع ارائه شده در این صفحه، نوع 3F است که برای سیستمهای 64 بیتی بهینه شده است. این نوع، کدهای هش 128 بیتی (16 بایتی) تولید میکند که معمولاً به صورت یک عدد هگزادسیمال 32 رقمی نمایش داده میشوند.
افشای کامل: من پیاده سازی خاصی از تابع هش مورد استفاده در این صفحه را ننوشتم. این یک تابع استاندارد است که در زبان برنامه نویسی PHP گنجانده شده است. من فقط رابط وب را ایجاد کردم تا برای راحتی در اینجا در دسترس عموم قرار دهم.
درباره الگوریتم هش MurmurHash3F
من ریاضیدان نیستم، اما سعی میکنم این تابع هش را با استفاده از قیاسی توضیح دهم که همکاران غیر ریاضیدانم بتوانند آن را درک کنند. اگر توضیح ریاضی کامل و از نظر علمی صحیح را ترجیح میدهید، مطمئنم میتوانید آن را در جای دیگری پیدا کنید ;-)
حالا تصور کنید که یک جعبه بزرگ از آجرهای لگو دارید. هر بار که آنها را به شکلی خاص مرتب میکنید، یک عکس میگیرید. مهم نیست که چیدمان چقدر بزرگ یا رنگارنگ باشد، دوربین همیشه یک عکس کوچک و با اندازه ثابت به شما میدهد. آن عکس نشان دهنده ساخته لگوی شماست، اما به شکلی فشرده.
MurmurHash3 کار مشابهی با دادهها انجام میدهد. هر نوع دادهای (متن، عدد، فایل) را دریافت کرده و آن را به یک «اثر انگشت» یا مقدار هش کوچک و ثابت تبدیل میکند. این اثر انگشت به کامپیوترها کمک میکند تا بدون نیاز به بررسی کل دادهها، آنها را به سرعت شناسایی، مرتبسازی و مقایسه کنند.
یک قیاس دیگر مانند پختن کیک است و MurmurHash3 دستور پختی است که آن کیک را به یک کاپ کیک کوچک (هش) تبدیل میکند. این یک فرآیند سه مرحلهای خواهد بود:
مرحله ۱: تقسیم به قطعات (شکستن دادهها)
- ابتدا، MurmurHash3 دادههای شما را به تکههای مساوی تقسیم میکند، مانند برش کیک به مربعهای زوج.
مرحله ۲: دیوانهوار میکس کنید (میکس کردن قطعات)
- هر قطعه یک فرآیند مخلوط کردن پیچیده را طی میکند: برگرداندن: مانند برگرداندن یک پنکیک، تکهها را دوباره مرتب میکند. هم زدن: مواد تصادفی (عملیات ریاضی) را برای مخلوط کردن اضافه میکند. له کردن: دادهها را به هم فشار میدهد تا مطمئن شود هیچ قطعه اصلی از بقیه متمایز نمیشود.
مرحله ۳: تست نهایی طعم (نهاییسازی)
- بعد از مخلوط کردن تمام تکهها، MurmurHash3 یک بار دیگر هم میزند تا مطمئن شود حتی کوچکترین تغییر در دادههای اصلی، طعم (هش) را کاملاً تغییر میدهد.
مطالعه بیشتر
اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:
