تصویر: الگوریتم هش ۶۴ بیتی FNV-1 - مرور بصری

منتشر شده: ۱۲ ژانویهٔ ۲۰۲۶ ساعت ۱۳:۲۶:۵۱ (UTC)
آخرین به روز رسانی: ۹ ژانویهٔ ۲۰۲۶ ساعت ۲۱:۳۱:۲۶ (UTC)

توضیح بصری واضح از الگوریتم هش ۶۴ بیتی FNV-1، که مقداردهی اولیه، پردازش به ازای هر بایت، به‌روزرسانی‌های هش و خروجی هش نهایی را در یک فلوچارت آسان نشان می‌دهد.


این صفحه ماشینی از انگلیسی ترجمه شد تا در دسترس هر چه بیشتر مردم باشد. متأسفانه، ترجمه ماشینی هنوز یک فناوری کامل نشده است، بنابراین ممکن است خطاهایی رخ دهد. در صورت تمایل می توانید نسخه اصلی انگلیسی را در اینجا مشاهده کنید:

FNV-1 64-bit Hash Algorithm – Visual Overview

نمودار جریان افقی که نشان می‌دهد چگونه بایت‌های ورودی گام به گام پردازش می‌شوند تا یک مقدار هش نهایی ۶۴ بیتی FNV-1 تولید شود.

نسخه‌های موجود از این تصویر

فایل‌های تصویری که در زیر برای دانلود موجود است، نسبت به تصاویر موجود در مقالات و صفحات این وب‌سایت که برای کاهش مصرف پهنای باند، از نظر حجم فایل بهینه‌تر شده‌اند، فشرده‌سازی کمتری داشته و وضوح بالاتری دارند - و در نتیجه، کیفیت بالاتری دارند.

اندازه معمولی (1,536 x 1,024)

سایز بزرگ (3,072 x 2,048)

سایز بسیار بزرگ (4,608 x 3,072)

سایز فوق العاده بزرگ (6,144 x 4,096)

اندازه‌ی کمیک بزرگ (1,048,576 x 699,051)

  • هنوز در حال آپلود هستم... ;-)

شرح تصویر

این تصویر، یک اینفوگرافیک تمیز و منظره‌محور است که جریان کلی الگوریتم هش ۶۴ بیتی FNV-1 را به صورت بصری و از چپ به راست توضیح می‌دهد. این تصویر از کادرهای رنگی بزرگ، فلش‌ها و آیکون‌های ساده استفاده می‌کند تا به بینندگان کمک کند درک کنند که چگونه یک جریان از بایت‌های ورودی به یک مقدار هش با اندازه ثابت تبدیل می‌شود. عنوان «الگوریتم هش ۶۴ بیتی FNV-1» به طور برجسته در مرکز بالای صفحه با فونت پررنگ و تیره ظاهر می‌شود و بلافاصله موضوع را مشخص می‌کند.

در سمت چپ، یک پنل آبی با برچسب «داده‌های ورودی» مجموعه‌ای از فایل‌ها یا بلوک‌ها را نشان می‌دهد که نشان‌دهنده‌ی جریان بایت‌ها هستند. موارد جداگانه به صورت کلی با عنوان «بایت ۱»، «بایت ۲»، «بایت ۳» و «... بایت n» برچسب‌گذاری شده‌اند که تأکید می‌کند الگوریتم روی هر تعداد بایت کار می‌کند. یک فلش بزرگ به سمت راست از این پنل ورودی به اولین مرحله‌ی پردازش اصلی منتهی می‌شود.

کادر بعدی یک پنل نارنجی با عنوان «Initialize Hash» است. درون آن، متن «Offset Basis» بالای یک فلش رو به پایین که به یک مستطیل تیره با عنوان «64-Bit Hash Value» اشاره می‌کند، نشان داده شده است. این نشان می‌دهد که الگوریتم با تنظیم یک حالت هش اولیه 64 بیتی مشتق شده از یک مقدار اولیه از پیش تعریف شده، بدون تعهد به هیچ ثابت عددی خاصی در تصویر، شروع می‌شود.

از مرحله مقداردهی اولیه، یک فلش دیگر به یک پنل سبز با عنوان «پردازش بایت» اشاره می‌کند. این پنل نشان‌دهنده عملیات اصلی به ازای هر بایت است. در بالای پنل، یک کادر کوچک‌تر با عنوان «بایت بعدی» وجود دارد که یک فلش رو به پایین به دو عملیات مفهومی منتهی می‌شود: یکی با نماد ضرب و با برچسب «FNV Prime» مشخص شده است و دیگری با نماد اختلاط با برچسب «مخلوط با بایت» مشخص شده است. این آیکون‌ها و برچسب‌ها نشان می‌دهند که هر بایت با استفاده از یک روش ضرب و ترکیب با حالت هش فعلی ترکیب می‌شود، در حالی که به اندازه کافی انتزاعی باقی می‌ماند تا از جزئیات عددی گمراه‌کننده جلوگیری شود.

بالای پنل‌های «پردازش بایت» و «به‌روزرسانی هش»، یک فلش خمیده از چپ به راست با عنوان «برای هر بایت تکرار کنید» کشیده شده است. این به صورت بصری تأکید می‌کند که مراحل پردازش و به‌روزرسانی، حلقه‌ای را تشکیل می‌دهند که به ازای هر بایت در توالی ورودی، یک بار اجرا می‌شود.

در سمت راست پنل «Process Byte» یک پنل سبز دیگر با عنوان «Update Hash» قرار دارد. درون آن یک مستطیل تیره‌تر با عنوان «New Hash Value» وجود دارد که نشان‌دهنده‌ی وضعیت به‌روزرسانی‌شده‌ی ۶۴ بیتی پس از پردازش یک بایت است. سپس یک فلش به سمت راست، این مقدار را به مرحله‌ی نهایی منتقل می‌کند.

کادر آخر در سمت راست، یک پنل بنفش با عنوان «هش نهایی ۶۴ بیتی» است. درون آن یک مستطیل تیره‌تر با عنوان «نتیجه هش ۶۴ بیتی» قرار دارد که نشان‌دهنده خروجی هش تکمیل‌شده پس از پردازش تمام بایت‌ها و پایان حلقه است.

در مجموع، این نمودار از کدگذاری رنگی ثابت، تایپوگرافی ساده و فلش‌های جهت‌دار استفاده می‌کند تا بیننده را به راحتی از داده‌های ورودی خام، از طریق مقداردهی اولیه، پردازش تکراری بایت، به‌روزرسانی هش و در نهایت به هش ۶۴ بیتی حاصل هدایت کند. ارائه عمداً سطح بالا است و از ثابت‌ها یا فرمول‌های دقیق اجتناب می‌کند و در عوض بر گردش کار مفهومی فرآیند هش FNV-1 تمرکز دارد.

تصویر مربوط به: ماشین حساب کد هش Fowler-Noll-Vo FNV1-64

در Bluesky به اشتراک بگذاریددر فیسبوک به اشتراک بگذاریددر لینکدین به اشتراک بگذاریددر Tumblr به اشتراک بگذاریددر X به اشتراک بگذاریدپین در پینترستدر Reddit به اشتراک بگذارید