ماشین حساب کد هش Adler-32
منتشر شده: ۱۷ فوریهٔ ۲۰۲۵ ساعت ۱۸:۰۳:۵۵ (UTC)
آخرین به روز رسانی: ۱۲ ژانویهٔ ۲۰۲۶ ساعت ۹:۱۴:۱۵ (UTC)
Adler-32 Hash Code Calculator
تابع هش Adler-32 یک الگوریتم جمع کنترلی است که ساده، سریع و اغلب برای تأیید صحت دادهها استفاده میشود. این تابع توسط مارک آدلر طراحی شده است و معمولاً در برنامههایی مانند zlib برای فشردهسازی دادهها استفاده میشود. برخلاف توابع هش رمزنگاری (مانند SHA-256)، Adler-32 برای امنیت طراحی نشده، بلکه برای بررسی سریع خطا طراحی شده است. این تابع یک جمع کنترلی ۳۲ بیتی (۴ بایت) را محاسبه میکند که معمولاً به صورت ۸ کاراکتر هگزادسیمال نمایش داده میشود.
افشای کامل: من پیاده سازی خاصی از تابع هش مورد استفاده در این صفحه را ننوشتم. این یک تابع استاندارد است که در زبان برنامه نویسی PHP گنجانده شده است. من فقط رابط وب را ایجاد کردم تا برای راحتی در اینجا در دسترس عموم قرار دهم.
درباره الگوریتم هش Adler-32
من ریاضیدان نیستم، اما سعی میکنم این تابع هش را با استفاده از یک قیاس روزمره توضیح دهم که امیدوارم دوستان غیر ریاضیدانم بتوانند آن را درک کنند. برخلاف بسیاری از توابع هش رمزنگاری، Adler32 یک تابع checksum کاملاً ساده است، بنابراین نباید خیلی بد باشد ;-)
تصور کنید که یک بسته از کاشیهای کوچک شمارهگذاری شده دارید که هر کدام نشاندهنده یک حرف یا بخشی از دادههای شما هستند. برای مثال، کلمه "Hi" دو کاشی دارد: یکی برای "H" و دیگری برای "i".
حالا، قرار است دو کار ساده با این کاشیها انجام دهیم:
مرحله ۱: آنها را جمع کنید (جمع A)
- با شماره ۱ شروع کنید (فقط به عنوان یک قاعده).
- عدد هر کاشی را به این مجموع اضافه کنید.
مرحله ۲: جمع کل تمام مبالغ را نگه دارید (جمع B)
- هر بار که شماره کاشی جدیدی را به مجموع A اضافه میکنید، مقدار جدید مجموع A را نیز به مجموع B اضافه میکنید.
- مثل روی هم چیدن سکهها است: یک سکه روی هم میگذارید (جمع A) و سپس ارتفاع کل جدید روی هم چیده شده (جمع B) را یادداشت میکنید.
در پایان، دو مجموع را به هم میچسبانید تا یک عدد بزرگ بسازید. آن عدد بزرگ، مجموع مقابلهای آدلر-۳۲ است.
مطالعه بیشتر
اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:
